平时编程,除了写页面很花费事件之外重复的写一些dao里面的sql语句也很烦人,最近发现spring data jpa非常的好用,可以最大程度的减少我们写sql语句的次数,一些简单的sql语句能根据接口的名称自动解析成sql,为我们大大的节约了编程的时间,让我们可以把更多的时间花在最重要的业务逻辑上面,重点他还帮我们实现了分页查询的方法,用起来非常的爽;
比如我们在dao借口里面写一个public void findByName(string name);,他就会自动的给我们解析成select * from tableName where name=name;让我们不用去关sql;
除了springMVC+hibernate+spring的框架之外还需要加的jar包:
org.hibernate.javax.persistence hibernate-jpa-2.0-api 1.0.1.Final org.springframework.data spring-data-jpa 1.0.3.RELEASE
切记hibernate最好用3.6.10.Final这个版本,spring用 3.1.1.RELEASE这个版本,之前因为版本低了一直报错,用了几天时间才找到问题
然后需要修改applicationContext.xml里面的sessionFactory修改为:
在配置事务的时候把entityManagerFactory当成sessionFactory用就行了
然后写dao的接口
@Repository public interface UserDao extends PagingAndSortingRepository{ public Test findByName(String name); }
然后调用dao的方法:
@RequestMapping("chen")
public void chen(int pageNo, int pageSize) {
Page
page = userDao.findAll(new PageRequest(pageNo - 1, pageSize));
}
里面封装了一些常用的方法;
修改和删除的时候就需要自己写sql了,但是写得也不是很多(注意注解)
@Modifying
@Query("update AccountInfo a set a.salary = 1 where a.salary < 2")
public int increaseSalary(int after, int before);