其中:Spring Data Jpa的开发步骤
1:配置applicationContext.xml,需要定义<jap:repository base-package=”com.itheima.dao”/>
2:需要定义接口,并继承JpaRepository(简单的CRUD)、JpaSpecificationExecutor(条件查询)接口。
3:配置实体类,添加Jpa的注解。
4:操作接口,即可以调用方法操作数据库
总结:SpringDataJpa的原理:
1.通过JdkDynamicAopProxy的invoke方法创建了一个动态代理对象
2.在动态代理中,调用SimpleJpaRepository类中封装了JPA的操作(借助JPA的api,调用EntityManager,完成数据库的CRUD)
3.Jpa的底层通过hibernate完成数据库操作(而hibernate底层封装了jdbc)
使用Spring Data JPA提供的查询方法已经可以解决大部分的应用场景,但是对于某些业务来说,我们还需要灵活的构造查询条件,这时就可以使用@Query注解,结合JPQL的语句方式完成查询
Spring Data JPA同样也支持sql语句的查询
@Query @Modified
value :jpql语句 | sql语句
nativeQuery :false(使用jpql查询--默认值) | true(使用本地查询:sql查询)
是否使用本地查询
方法命名规则查询就是根据方法的名字,就能创建查询。只需要按照Spring Data JPA提供的方法命名规则定义方法的名称,就可以完成查询工作。Spring Data JPA在程序执行的时候会根据方法名称进行解析,并自动生成查询语句进行查询 |
|