初学者对spring data框架的简单了解
what?
spring Data JPA 是spring 系列下的一个持久层框架,原理有些相似与hibernate ,但是主要针对的就是 Spring 唯一没有简化到的业务逻辑代码,至此,开发者连仅剩的实现持久层业务逻辑的工作都省了,唯一要做的,就只是声明持久层的接口,其他都交给 Spring Data JPA 来帮你完成!
how?
1.先下载spring Data JPA两个依赖(需要同时下载 Spring Data Commons 和 Spring Data JPA 两个发布包,Commons 是 Spring Data 的公共基础包),并把相关的依赖 JAR 文件加入到 CLASSPATH 中。
2.让持久层接口 Dao(以UserDao) 继承 Repository 接口。
该接口使用了泛型,需要为其提供两个类型:第一个为该接口处理的域对象类型,第二个为该域对象的主键类型。 如下:
Spring Data JPA 风格的持久层接口:
public interface UserDao extends Repository<AccountInfo, Long> {
public AccountInfo save(AccountInfo accountInfo);
}
不需要UserDao的实现类,框架会为我们完成业务逻辑。
3.在 Spring 配置文件中启用扫描并自动创建代理的功能。
<-- 需要在 <beans> 标签中增加对 jpa 命名空间的引用 -->
<jpa:repositories base-package="footmark.springdata.jpa.dao"
entity-manager-factory-ref="entityManagerFactory"
transaction-manager-ref="transactionManager"/>
4.测试代码。
public interface UserDao extends Repository<AccountInfo, Long> {
public AccountInfo save(AccountInfo accountInfo);
// 你需要做的,仅仅是新增如下一行方法声明
public AccountInfo findByAccountId(Long accountId);
}
另外:spring Data JPA有几个比较重要的注解也需要掌握
@query 摆脱像命名查询那样的约束,将查询直接在相应的接口方法中声明,结构更为清晰,这是Springdata 的特有实现
@Modifying 简单来说就是和@query一起使用可以自定义查询 自己在注解里面手动编写sql语句
why?
主要目标是使得数据库的访问变得方便快捷,并支持map-reduce框架和云计算机数据服务。
支持基于关系型数据库的数据服务,如OracleRAC等。
对于拥有海量数据的项目,可以用SpringData来简化项目的开发,就如Spring Framework对JDBC,ORM的支持一样,SpringData会让数据访问变得更加方便,同mybatis框架相比告别了大量的sql语句(虽然可以自动生成)当然复杂的还是自己来比较好。