绵阳网站建设100jv,东莞建筑公司前十强,女装小说WordPress,高级程序员培训目录 背景#xff1a;方案概念#xff1a;JPA 的主要作用 jpa简单使用#xff08;Springboot项目#xff09;jpa进阶使用总结 背景#xff1a;
项目需要自动生成sql代码#xff0c;不需要写sql语句#xff0c;能够自动进行查询#xff0c;我想到了JPA。
方案
概念方案概念JPA 的主要作用 jpa简单使用Springboot项目jpa进阶使用总结 背景
项目需要自动生成sql代码不需要写sql语句能够自动进行查询我想到了JPA。
方案
概念
JPA 的全称是 Java Persistence API是 Java EE 规范之一用于定义 Java 对象与关系型数据库之间的映射关系。JPA 提供了一种简单的方式让开发者可以通过面向对象的方式来操作数据库而不需要手动编写 SQL 语句。
JPA 的主要作用
1、将 Java 对象映射到关系型数据库中的表格。 2、提供了一种统一的 API可以让开发者以面向对象的方式来操作数据库而不需要关心底层的数据库操作细节。 3、支持事务处理、缓存管理等高级功能。 4、提供了查询语言 JPQL可以以面向对象的方式编写查询语句。 JPA 是 Java EE 规范的一部分不是一个具体的实现。常见的 JPA 实现包括 Hibernate、EclipseLink、OpenJPA 等。在使用 JPA 进行开发时可以选择一个符合自己需求的 JPA 实现并按照 JPA 的规范进行开发。
jpa简单使用Springboot项目
Repository
public interface ContentGrainDao extends JpaRepositoryContentGrain, Long {}SpringBootApplication
public class PushClassApplication implements CommandLineRunner {AutowiredContentGrainDao contentGrainRepository;Autowiredprivate UserOrderRepository userOrderRepository;public static void main(String[] args) {SpringApplication.run(PushClassApplication.class,args);}Overridepublic void run(String... args) throws Exception {//将断点打到这里ListContentGrain result contentGrainRepository.findAll();System.out.println(222);
}
}jpa进阶使用
//AcademyEntity 是要查表的实体Long是这张表的主键类型
public interface TTAcademyDao extends JpaRepositoryAcademyEntity, Long
{AcademyEntity findByNameAndIsDelete(String name, int isDelete);
}JPA 的命名规范是基于方法名称自动生成 SQL 查询语句方法名称必须遵循一定的规范以便自动生成正确的 SQL 语句。
根据 JPA 命名规范findByNameAndIsDelete 这个方法名表示按照 name 和 isDelete 属性进行查询。具体解释如下
find表示这是一个查询方法。 By表示按照某个属性进行查询。 Name表示按照 name 属性进行查询。 And表示并且关系即同时满足两个条件。 IsDelete表示按照 isDelete 属性进行查询。 根据这个方法名称JPA 可以自动生成类似下面的 SQL 查询语句
SELECT * FROM AcademyEntity WHERE name ? AND is_delete ?
这样就可以通过方法名称来实现简单的查询操作而不需要手动编写 SQL 查询语句。需要注意的是JPA 命名规范有一定的限制不支持所有的查询语句一些复杂的查询仍然需要手动编写 SQL 语句个人认为没有必要要是需要使用sql的话就不用JPA了。
总结
善假于物实现自动化~