spring-data-jpa
2017-08-02 23:54
120 查看
data-JPA概念:
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
ORM映射元数据
JPA支持XML和JDK5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中
自 JPA 伴随 Java EE 5 发布以来,受到了各大厂商及开源社区的追捧,各种商用的和开源的 JPA 框架如雨后春笋般出现,为开发者提供了丰富的选择。
JPA的底层实现是一些流行的开源ORM(对象关系映射)框架,因此JPA其实也就是java实体对象和关系型数据库建立起映射关系,通过面向对象编程的思想操作关系型数据库的规范。
Spring Data JPA 框架,主要针对的就是 Spring 唯一没有简化到的业务逻辑代码,至此,开发者连仅剩的实现持久层业务逻辑的工作都省了,唯一要做的,就只是声明持久层的接口,其他都交给 Spring Data JPA 来帮你完成!
jpql:
JPQ语句JPQL全称Java Persistence Query Language。Java持久化查询语言(JPQL)是一种可移植的查询语言,旨在以面向对象表达式语言的表达式,将SQL语法和简单查询语义绑定在一起·使用这种语言编写的查询是可移植的,可以被编译成所有主流数据库服务器上的SQL。
JPQL所提供的查询语法主要分为三类:
查询用的 SELECT 语法
更新用的 UPDATE 语法
删除用的 DELETE 语法
SQL语句是在数据库空间中对字段,列,行进行操作
JPQL语句是在EJB实体空间中面向对象,属性进行操作
JPQL必须由JPA的JPQL解析器解析为SQL才能执行,必须先获取Query对象
一个基本的 SELECT 语句如下所示:
SELECT u.id, u.name FROM User u WHERE u.age > 10 AND u.age < 20
select name ,age from user; //原生SQL语句
select u.name,u.age from User u; //JPQL语句
select u from User u; //JPQL语句
逻辑运算符 between ,like , in , is null,is empty,member of,not ,and ,or
1 not
"select u from User u where not(u.cityid=?1)"
2 between和sql中一样
3 in 在给定的值列表中查询
"select u from User u where u.cityid in(1,2,3)"
4 like ( _ 表示一个字符,%表示任意数量字符 )
xxxx where u.name like ' 张% '
5 is null (实体的属性是否为空,即实体属性映射的字段是否为空)
"select u from User u where u.cityid is null"
6 is empty (与is null 不同的是,它针对实体的集合属性 内有没有元素。
虽然集合对象是存在的,但是集合内没有元素)
select o from Order o where o.orderItems is empty
条件查询
1排序查询 asc升序 desc降序
order by p.age desc,p.birthday asc
关联查询(实际工作中仍然会有这种需求)
left join 允许右边实体表达式的实体为空,这里的实体指 集合属性
inner join 右边必须存在
"select o from Order o inner join o.orderItems"
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
ORM映射元数据
JPA支持XML和JDK5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中
自 JPA 伴随 Java EE 5 发布以来,受到了各大厂商及开源社区的追捧,各种商用的和开源的 JPA 框架如雨后春笋般出现,为开发者提供了丰富的选择。
JPA的底层实现是一些流行的开源ORM(对象关系映射)框架,因此JPA其实也就是java实体对象和关系型数据库建立起映射关系,通过面向对象编程的思想操作关系型数据库的规范。
Spring Data JPA 框架,主要针对的就是 Spring 唯一没有简化到的业务逻辑代码,至此,开发者连仅剩的实现持久层业务逻辑的工作都省了,唯一要做的,就只是声明持久层的接口,其他都交给 Spring Data JPA 来帮你完成!
jpql:
JPQ语句JPQL全称Java Persistence Query Language。Java持久化查询语言(JPQL)是一种可移植的查询语言,旨在以面向对象表达式语言的表达式,将SQL语法和简单查询语义绑定在一起·使用这种语言编写的查询是可移植的,可以被编译成所有主流数据库服务器上的SQL。
JPQL所提供的查询语法主要分为三类:
查询用的 SELECT 语法
更新用的 UPDATE 语法
删除用的 DELETE 语法
SQL语句是在数据库空间中对字段,列,行进行操作
JPQL语句是在EJB实体空间中面向对象,属性进行操作
JPQL必须由JPA的JPQL解析器解析为SQL才能执行,必须先获取Query对象
一个基本的 SELECT 语句如下所示:
SELECT u.id, u.name FROM User u WHERE u.age > 10 AND u.age < 20
select name ,age from user; //原生SQL语句
select u.name,u.age from User u; //JPQL语句
select u from User u; //JPQL语句
逻辑运算符 between ,like , in , is null,is empty,member of,not ,and ,or
1 not
"select u from User u where not(u.cityid=?1)"
2 between和sql中一样
3 in 在给定的值列表中查询
"select u from User u where u.cityid in(1,2,3)"
4 like ( _ 表示一个字符,%表示任意数量字符 )
xxxx where u.name like ' 张% '
5 is null (实体的属性是否为空,即实体属性映射的字段是否为空)
"select u from User u where u.cityid is null"
6 is empty (与is null 不同的是,它针对实体的集合属性 内有没有元素。
虽然集合对象是存在的,但是集合内没有元素)
select o from Order o where o.orderItems is empty
条件查询
1排序查询 asc升序 desc降序
order by p.age desc,p.birthday asc
关联查询(实际工作中仍然会有这种需求)
left join 允许右边实体表达式的实体为空,这里的实体指 集合属性
inner join 右边必须存在
"select o from Order o inner join o.orderItems"
相关文章推荐
- Spring Data jpa
- 深入学习spring-boot系列(二)--使用spring-data-jpa
- Spring data JPA 中IN的使用
- spring data jpa 关联查询返回自定义对象
- Spring Data JPA
- 12. spring4.1.6+spring mvc4.1.6+spring data jpa1.7.0+maven整合
- Spring data jpa Action的抽取方法
- spring data JPA 配置
- Spring data jpa详解
- Spring Data JPA入门
- springboot(五):spring data jpa的使用
- Spring-Data-Jpa AuditingEntityListener @CreatedDate @LastModifiedDate 用法
- 了解 Spring Data JPA
- JPA + SpringData 操作数据库原来可以这么简单 ---- 深入了解 JPA - 1
- springData jpa update delete
- 【原创】纯干货,Spring-data-jpa详解,全方位介绍。
- Spring Data JPA 复杂/多条件组合查询
- spring data jpa 错误 Not an managed type: class java.lang.Object
- SpringMVC4+JPA(Hibernate4)+Spring-data-jpa+Shiro整合
- Spring data jpa sort多属性排序问题