开发指南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


相关文章
|
4月前
|
人工智能 关系型数据库 Serverless
什么样的数据库才是开发者需要的
【1月更文挑战第3天】什么样的数据库才是开发者需要的
|
22天前
|
SQL 关系型数据库 MySQL
数据库概述
数据库概述
|
4月前
|
SQL NoSQL 关系型数据库
第1期 数据库概述
第1期 数据库概述
19 0
|
11月前
|
存储 SQL Oracle
01_数据库概述
01_数据库概述
111 0
|
11月前
|
SQL 存储 NoSQL
第01章_数据库概述
第01章_数据库概述
50 0
|
存储 关系型数据库 MySQL
|
存储 SQL Oracle
数据库概述 | 学习笔记
快速学习数据库概述。
数据库概述 | 学习笔记
|
存储 SQL Oracle
1_数据库简介
1_数据库简介
116 0
1_数据库简介
|
存储 SQL NoSQL
数据库概述(学习笔记)
DB:数据库(Database) 即存储数据的”仓库“,其本质是一个文件系统。它保存了一系列有组织的数据。 DBMS:数据库管理系统(Database Management System) 是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一的管理和控制。用户通过数据库管理系统访问数据库中表内的数据。 SQL:结构化查询语言 (Structured Query Language) 专门用来与数据库通信的语言。
154 0
数据库概述(学习笔记)
|
存储 SQL Oracle
数据库概述 | 学习笔记
快速学习数据库概述。
112 0
 数据库概述 | 学习笔记