spring-data-jpa 使用方法
2018-01-29 16:54
274 查看
转载自:http://blog.csdn.net/linlinv3/article/details/46605719
什么是spring-data
为了简化程序与数据库交互的代码,spring提供了一个现成的dao层框架,spring家族提供的spring-data适用于关系型数据库和nosql数据库 ;
例如 Spring Data JPA, Spring
Data Hadoop, Spring Data MongoDB ,Spring Data Solr 等;
具体的可以参考官网:http://projects.spring.io/spring-data/;
他们的共同特点是给我们提供了框架代码,spring Data能自动创建实体dao的实现类和自定义查询,不再需要我们自己去实现了。
api地址: http://jpa.coding.io/
中文
http://docs.spring.io/spring-data/data-jpa/docs/current/reference/html/
英文
什么是jpa?
JPA全称为Java持久性API(Java Persistence API),JPA是Java EE 5标准之一,是一个ORM规范,由厂商来实现该规范,目前有Hibernate、OpenJPA、TopLink、EclipseJPA等实现;
如何使用JPA?
为我们提供了增删改查的接口:
一、查询: 查询的方法有很多,我不一一列举,经常使用的在这里列举一下:
1、查询所有数据 findAll()
2、分页查询 findAll(new PageRequest(0, 2))
3、根据id查询 findOne()
4、根据实体类属性查询: findByProperty (type Property); 例如:findByAge(int age);
5、排序: findAll(sort )
Sort sort = new Sort(Sort.Direction.DESC, "age").and (new Sort(Sort.Direction.DESC, "id"));
6、条件查询 and/or/findByAgeLessThan/LessThanEqual 等,
例如: findByUsernameAndPassword(String username , String password)
7、总数 查询 count() 或者 根据某个属性的值查询总数countByAge(int age);
8、是否存在某个id exists()
二、修改,删除,新增
新增:直接使用 save(T) 方法
删除: delete() 或者 deleteByProperty 例如:deleteByAge(int age) ;
更新:@Modifying
@Query("update Customer u set u.age = ?1 where u.id = ?2")
int update(int age1 , long id);
官网上写出了所有的方法,非常详细,这里稍作列举
And => 等价于 SQL 中的 and 关键字 例如:findByUsernameAndPassword(String user, Striang pwd);
Or => 等价于 SQL 中的 or 关键字,例如:findByUsernameOrAddress(String user, String addr);
Between => 等价于 SQL 中的 between 关键字,例如:SalaryBetween(int
max, int min);
LessThan => 等价于 SQL 中的 "<",例如: findBySalaryLessThan(int max);
GreaterThan => 等价于 SQL 中的">",例如: findBySalaryGreaterThan(int min);
IsNull => 等价于 SQL 中的 "is null",例如: findByUsernameIsNull();
IsNotNull => 等价于 SQL 中的 "is not null",例如: findByUsernameIsNotNull();
NotNull=> 与 IsNotNull 等价;
Like => 等价于 SQL 中的 "like",例如: findByUsernameLike(String user);
NotLike => 等价于 SQL 中的 "not like",例如: findByUsernameNotLike(String user);
OrderBy => 等价于 SQL 中的 "order by",例如: findByUsernameOrderBySalaryAsc(String
user);
Not => 等价于 SQL 中的 "! =",例如: findByUsernameNot(String
user);
In => 等价于 SQL 中的 "in",例如: findByUsernameIn(Collection<String>
userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数;
NotIn => 等价于 SQL 中的 "not in",例如: findByUsernameNotIn(Collection<String>
userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数;
创建一个按单字段排序的Sort对象: new Sort(Sort.Direction.DESC, "description").and(new Sort(Sort.Direction.ASC, "id"))
什么是spring-data
为了简化程序与数据库交互的代码,spring提供了一个现成的dao层框架,spring家族提供的spring-data适用于关系型数据库和nosql数据库 ;
例如 Spring Data JPA, Spring
Data Hadoop, Spring Data MongoDB ,Spring Data Solr 等;
具体的可以参考官网:http://projects.spring.io/spring-data/;
他们的共同特点是给我们提供了框架代码,spring Data能自动创建实体dao的实现类和自定义查询,不再需要我们自己去实现了。
api地址: http://jpa.coding.io/
中文
http://docs.spring.io/spring-data/data-jpa/docs/current/reference/html/
英文
什么是jpa?
JPA全称为Java持久性API(Java Persistence API),JPA是Java EE 5标准之一,是一个ORM规范,由厂商来实现该规范,目前有Hibernate、OpenJPA、TopLink、EclipseJPA等实现;
如何使用JPA?
为我们提供了增删改查的接口:
一、查询: 查询的方法有很多,我不一一列举,经常使用的在这里列举一下:
1、查询所有数据 findAll()
2、分页查询 findAll(new PageRequest(0, 2))
3、根据id查询 findOne()
4、根据实体类属性查询: findByProperty (type Property); 例如:findByAge(int age);
5、排序: findAll(sort )
Sort sort = new Sort(Sort.Direction.DESC, "age").and (new Sort(Sort.Direction.DESC, "id"));
6、条件查询 and/or/findByAgeLessThan/LessThanEqual 等,
例如: findByUsernameAndPassword(String username , String password)
7、总数 查询 count() 或者 根据某个属性的值查询总数countByAge(int age);
8、是否存在某个id exists()
二、修改,删除,新增
新增:直接使用 save(T) 方法
删除: delete() 或者 deleteByProperty 例如:deleteByAge(int age) ;
更新:@Modifying
@Query("update Customer u set u.age = ?1 where u.id = ?2")
int update(int age1 , long id);
官网上写出了所有的方法,非常详细,这里稍作列举
And => 等价于 SQL 中的 and 关键字 例如:findByUsernameAndPassword(String user, Striang pwd);
Or => 等价于 SQL 中的 or 关键字,例如:findByUsernameOrAddress(String user, String addr);
Between => 等价于 SQL 中的 between 关键字,例如:SalaryBetween(int
max, int min);
LessThan => 等价于 SQL 中的 "<",例如: findBySalaryLessThan(int max);
GreaterThan => 等价于 SQL 中的">",例如: findBySalaryGreaterThan(int min);
IsNull => 等价于 SQL 中的 "is null",例如: findByUsernameIsNull();
IsNotNull => 等价于 SQL 中的 "is not null",例如: findByUsernameIsNotNull();
NotNull=> 与 IsNotNull 等价;
Like => 等价于 SQL 中的 "like",例如: findByUsernameLike(String user);
NotLike => 等价于 SQL 中的 "not like",例如: findByUsernameNotLike(String user);
OrderBy => 等价于 SQL 中的 "order by",例如: findByUsernameOrderBySalaryAsc(String
user);
Not => 等价于 SQL 中的 "! =",例如: findByUsernameNot(String
user);
In => 等价于 SQL 中的 "in",例如: findByUsernameIn(Collection<String>
userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数;
NotIn => 等价于 SQL 中的 "not in",例如: findByUsernameNotIn(Collection<String>
userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数;
创建一个按单字段排序的Sort对象: new Sort(Sort.Direction.DESC, "description").and(new Sort(Sort.Direction.ASC, "id"))
相关文章推荐
- Spring------Spring boot data jpa的使用方法
- SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法
- Spring Data JPA使用getOne方法报错:Method threw 'org.hibernate.LazyInitializationException' exception. Cannot evaluate
- 在spring data jpa中使用redis的通用list及entity存储方法
- SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法
- spring-data-jpa 使用方法
- spring-data-jpa 使用方法
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(二):进一步消除 hibernate.cfg.xml
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(四):使用 命名空间 简化配置
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(六): 一些常用的数据库 注解
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(一):消除hibernate中<mapping resouce 的xxxx. hbm.xml文件
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(四):使用 命名空间 简化配置
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(二):进一步消除 hibernate.cfg.xml
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(六): 一些常用的数据库 注解
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(一):消除hibernate中<mapping resouce 的xxxx. hbm.xml文件
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(五):使用@Component 来简化bean的配置
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(一):消除hibernate中
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(一):消除hibernate中<mapping resouce 的xxxx. hbm.xml文件
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(五):使用@Component 来简化bean的配置
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(六): 一些常用的数据库 注解