Spring Boot JPA如何把ORM统一起来
jpa介绍
jpa(java persistence api)是sun官方提出的java持久化规范。它为java开发人员提供了一种对象/关联映射工具来管理java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合orm技术,结束现在hibernate,toplink,jdo等orm框架各自为营的局面。值得注意的是,jpa是在充分吸收了现有hibernate,toplink,jdo等orm框架的基础上发展而来的,具有易于使用,伸缩性强等优点。从目前的开发社区的反应上看,jpa受到了极大的支持和赞扬,其中就包括了spring与ejb3.0的开发团队。jpa是一套规范,不是一套产品,那么像hibernate,toplink,jdo他们是一套产品,如果说这些产品实现了这个jpa规范,那么我们就可以叫他们为jpa的实现产品。
spring data jpa
spring data jpa 是 spring 基于 orm 框架、jpa 规范的基础上封装的一套jpa应用框架,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 spring data jpa 可以极大提高开发效率!spring data jpa让我们解脱了dao层的操作,基本上所有crud都可以依赖于它来实现,自己写个仓储接口后继承jparepository即可实现最基本的增删改查功能!
在项目中引用spring jpa
1 在build.gradle文件中添加包引用
compile('org.springframework.boot:spring-boot-starter-data-jpa') compile('mysql:mysql-connector-java')
2 在source的配置文件中添加mysql和jpa的相关设置
spring: datasource: url: jdbc:mysql://127.0.0.1:3306/test username: root password: root driver-class-name: com.mysql.jdbc.driver jpa: database: mysql show-sql: true #显示后台处理的sql语句 hibernate: ddl-auto: update #自动检查实体和数据库表是否一致,如果不一致则会进行更新数据库表
3 添加数据库表实体,注意一些注解,@entity表示数据表实体,@table可以指定数据表名称,@id表示是主键,@generatedvalue主键升成规则,@column表示数据列名称等等。
import javax.persistence.column; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.table; import lombok.data; @data @entity @table(name = "user") public class user { @id @generatedvalue(strategy = generationtype.auto) @column(name = "id") private int id; @column(name = "name") private string name; }
4 为数据表实体添加仓储接口,因为jpa已经有了自己的标准实例,所以简单的curd实例我们不需要写了,如果有个性化的操作,再去定义接口和实现。
import com.example.springdemo.model.user; import org.springframework.data.jpa.repository.jparepository; public interface sqluserrepository extends jparepository<user, integer> { }
5 最后在controller中添加依赖注入的字段,一般使用@autowired即可
@restcontroller @requestmapping("/mysql") public class mysqlcontroller { @autowired private sqluserrepository repository; /** * return list. * * @return */ @requestmapping("/list") public list<user> datalist() { return repository.findall(); } }
总结
以上所述是小编给大家介绍的spring boot jpa如何把orm统一起来,希望对大家有所帮助