前面文章记录了springboot整合mybatis以及spingboot整合jdbctemlate的过程,这篇文章记录springboot整合jpa操作过程。jpa实际也是用来操作数据库的持久层框架,如何使用jpa操作数据库,和springboot整合mybatis以及spingboot整合jdbctemlate一样,数据库连接池还是使用默认的连接池tomcat.jdbc.pool,我们不再配置druid或者其他连接池,关于springboot如何整合druid或者其他连接池后面文章会给出。
全称java persistence api,可以通过注解或者xml描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。
为我们提供了:
1)orm映射元数据:jpa支持xml和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;
如:@entity、@table、@column、@transient等注解。
2)jpa 的api:用来操作实体对象,执行crud操作,框架在后台替我们完成所有的事情,开发者从繁琐的jdbc和sql代码中解脱出来。
如:entitymanager.merge(t t);
3)jpql查询语言:通过面向对象而非面向数据库的查询语言查询数据,避免程序的sql语句紧密耦合。
如:from student s where s.name = ?
但是:
jpa仅仅是一种规范,也就是说jpa仅仅定义了一些接口,而接口是需要实现才能工作的。所以底层需要某种实现,而hibernate就是实现了jpa接口的orm框架。
也就是说:
jpa是一套orm规范,hibernate实现了jpa规范!如图:
spirng data jpa是spring提供的一套简化jpa开发的框架,按照约定好的【方法命名规则】写dao层接口,就可以在不写接口实现的情况下,实现对数据库的访问和操作。同时提供了很多除了crud之外的功能,如分页、排序、复杂查询等等。
spring data jpa 可以理解为 jpa 规范的再次封装抽象,底层还是使用了 hibernate 的 jpa 技术实现。如图:
接口约定命名规则:
实例:
引入stater
编写实体类
对pojo类增加entity的注解,并指定表名(如果不指定,默认的表名为student),然后指定id的及其生成策略,这些都是jpa的知识,与spring boot无关,代码:
编写接口
基本配置(能配置的都在都在jpaproperties类中)
测试
前面直接使用的是jpa规范中定义好的接口,我们也可自己在接口中定义方法
至此 springboot整合jpa完成,有疑问可以关注我的公众号 java一号 联系
个人独立站点: www.javayihao.top
如对本文有疑问, 点击进行留言回复!!
unity的错误解决办法:NullReferenceException: Object reference not set to an instance of an object;tiny proje
Hadoop 之 HDFS (HDFS 数据流的 读写 流程)
听说你一读Spring源码就懵逼?我帮你把架子搭好了,你填就行!
首席架构师推荐:金融保险领域数字化转型实践--如何优雅地修改业务中台中分层应用Maven多模块的版本号?(命令导入式)
[JVM学习之路]一、初识JVM,了解其结构、模型及生命周期
网友评论