开发指南003-访问数据库

简介: 平台访问数据库采用JPA+Hibernate,总共有三种方式

平台访问数据库采用JPA+Hibernate,总共有三种方式:

1、通过平台提供JdbcUtils类直接执行SQL·

@Autowired
private JdbcUtils jdbcUtils;
public int getCount(){
    try{
        return jdbcUtils.queryForInt("select count(*) from sdk_example");
    }
    catch(Exception e){
        CommonsUtil.recordLog(e);
        return 0;
    }
}

image.gif

2、建立DAO类(需扩展BaseDAO)

@Repository
public interface sdkExampleDAO extends BaseDAO<sdkExampleBO,String> {
    //---------通过HSQL访问-------------
    @Query(value="select bo from sdkExampleBO bo where bo.name =:name")
    public List<sdkExampleBO> findInfoByHSQL(@Param("name") String name);
    //---------通过原生SQL访问-------------
    @Query(value="select r.* from sdk_example r where r.name =:name",nativeQuery = true)
    public List<sdkExampleBO> findInfoBySQL(@Param("name") String name);
}

image.gif

其中又分两种HQL和原生SQL

另外BaseDAO中也封装了基本操作,如save、delete等,除了使用@Query注解,也可以利用JPA的简化定义方法,例如findAllBy***And***OrderBy***

3、 使用EntityManager

@PersistenceContext
private EntityManager entityManager;
public Page<ParameterBO> getParameterList(parameterRequestDto dto) {
    Pageable pageable = PageRequest.of(dto.getPage(), dto.getSize());
    String hql="select r from ParameterBO r where 1=1";
    String countsql="select count(*) from sys_parameters where 1=1 ";
    //进行条件组合
    if (dto.getParakey()!=null && !"".equals(dto.getParakey())){
        countsql+=" and para_key like '%"+dto.getParakey()+"%'";
        hql+="and r.parakey like '%"+dto.getParakey()+"%'";
    }
    if (dto.getParaname()!=null && !"".equals(dto.getParaname())){
        countsql+=" and para_name like '%"+dto.getParaname()+"%'";
        hql+="and r.paraname like '%"+dto.getParaname()+"%'";
    }
    int count =jdbcUtils.queryForInt(countsql);  
    //获取数据
    Query query = entityManager.createQuery(hql);
    query.setFirstResult((int)pageable.getOffset());
    query.setMaxResults(pageable.getPageSize());
    List<ParameterBO> objArray = query.getResultList();
    return new PageImpl<ParameterBO>(objArray,pageable,count);
}

image.gif


相关文章
|
SQL 存储 数据库
【SQL Server】数据库开发指南(六)索引和视图的使用技巧、方法与综合应用
索引就是数据表中数据和相应的存储位置的列表,利用索引可以提高在表或视图中的查找数据的速度。它类似于书籍的索引,可以帮助快速定位和检索数据。在数据库中,索引是对一个或多个列的值进行排序和存储的结构,它们包含指向实际数据位置的指针。视图就是一个虚拟的数据表,该数据表中的数据记录是由一条查询语句的查询结果得到的。
350 1
【SQL Server】数据库开发指南(六)索引和视图的使用技巧、方法与综合应用
|
SQL 运维 Cloud Native
【SQL Server】数据库开发指南(五)T-SQL 高级查询综合应用与实战
T-SQL 是 SQL Server 的专用版本,提供了一组强大的高级查询功能,包括聚合函数、子查询、连接、视图、窗口函数、共享表达式、递归查询等。这些功能使得 T-SQL 可以轻松处理大量数据,并支持各种复杂的查询和数据操作。本文将介绍 T-SQL 的一些常见高级查询功能和语法,以及如何使用这些功能来优化 SQL Server 数据库的性能和效率。
306 1
【SQL Server】数据库开发指南(五)T-SQL 高级查询综合应用与实战
|
SQL 存储 数据挖掘
【SQL Server】数据库开发指南(三)面向数据分析的 T-SQL 编程技巧与实践
T-SQL 指的是 Transact-SQL,是一种针对 Microsoft SQL Server 数据库系统的 SQL 方言。T-SQL 扩展了标准 SQL 语言,提供了更多的功能和特性,包括事务处理、错误处理、游标处理、动态 SQL、存储过程、触发器、用户定义函数等等。
193 0
【SQL Server】数据库开发指南(三)面向数据分析的 T-SQL 编程技巧与实践
|
存储 SQL Oracle
【SQL Server】数据库开发指南(一)数据库设计
在实际的软件项目中,如果系统中需要存储的数据量比较大,需要设计的表比较多,表与表之间的关系比较复杂,那我们就需要进行规范的数据库设置。如果不经过数据库的设计,我们构建的数据库不合理、不恰当,那么数据库的维护、运行效率会有很大的问题。这将直接影响到项目的运行性和可靠性。
398 0
【SQL Server】数据库开发指南(一)数据库设计
|
存储 SQL Go
|
Oracle Java 关系型数据库
《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一2.1 Oracle数据库的发展
本节书摘来自华章出版社《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一书中的第2章,第2.1节,作者孙风栋 王澜,更多章节内容可以访问云栖社区“华章计算机”公众号查看
2336 0
|
Oracle 关系型数据库 数据库
《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一3.2 Oracle 11g数据库软件下载
本节书摘来自华章出版社《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一书中的第3章,第3.2节,作者孙风栋 王澜,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1556 0
|
Oracle 关系型数据库 Linux
《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一第3章 Oracle 11g数据库的安装
本节书摘来自华章出版社《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一书中的第3章,作者孙风栋 王澜,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1952 0
|
SQL 存储 关系型数据库
《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一2.4 Oracle 11g数据库的新特性
本节书摘来自华章出版社《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一书中的第2章,第2.4节,作者孙风栋 王澜,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1998 0
|
Web App开发 Oracle 关系型数据库
《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一2.3 Oracle数据库的应用结构
本节书摘来自华章出版社《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一书中的第2章,第2.4节,作者孙风栋 王澜,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1509 0