springboot集成spring-jpa
![1d596fb7b5b6fffd8fdd3a4916ed4bed.png](https://i-blog.csdnimg.cn/blog_migrate/faae1948f103108e72a4bbac36523382.jpeg)
本文主要内容:
1:spring boot怎么集成spring-jpa以及第一个jpa查询示例
如jpa几个常用注解、lombok注解使用
2:怎么设置idea中在pom中添加依赖的时候自动联想。
3:集成过程中遇到的问题及解决.如mysql时区问题、jpa懒加载问题。
我们遵从MVC三层模式,DAO层设计与开发、Service层设计与开发以及Controller层。
我们先来DAO层设计开发,Spring boot项目基础框架创建这里就省略。
本文出自:凯哥Java(kaigejava)
《spring boot支付项目》
一:相关jar依赖添加
因为使用到了mysql,在POM.XML文件中引入mysql相关jar及操作数据库相关的。这里我们使用的是spring-jpa来操作数据库。具体jra如下:
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-jpaartifactId>
dependency>
在教大家一个idea怎么在pom文件中输入坐标时候联想,如下图:在输入atrifactid的时候可以联想到,如下图:
![5aa46cdde6989d233724e6d61e7f234d.png](https://i-blog.csdnimg.cn/blog_migrate/da8f856a387ae69e9a1053399cff8ea7.jpeg)
![32662c45138dddb6d3b02b1e96f8bf2a.png](https://i-blog.csdnimg.cn/blog_migrate/ca1655e5703cbdd5e700b38340c6e292.jpeg)
操作:file-->settings界面,依次找到:build,execution,Deployment-->Bulid Tools-->maven-->Repositories.如下图:
![dc9059c713099f5e8375c5cf8ff9ddf0.png](https://i-blog.csdnimg.cn/blog_migrate/63936538d5d3f309c309e3a647538a73.jpeg)
点击更新就可以了。
二:数据库连接配置。这里我们使用的是yml格式的。配置如下图:
![fe550b618b2026590b4353d0af6f5f95.png](https://i-blog.csdnimg.cn/blog_migrate/97bee799d7a4096944547bd49c23bf2a.jpeg)
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://localhost/springboot-wxpay?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
jpa:
show-sql: true
说明:
spring.jpa.show-sql=true.这句意思是:打印sql语句。
在url后面添加serverTimeizone=UTC是为了解决时区错误的问题。
三:创建实体及测试
3.1:创建ProductCategory实体对象。使用spring-jpa方式:
![e7e2e0546870ec0f8874763ae9f7471e.png](https://i-blog.csdnimg.cn/blog_migrate/2b08d10c8db04d81b7ed17ee6479ec79.jpeg)
说明:
@Entity:spring-jpa实体注解
@Data: lombok注解用于自动生产get/set方法的
@Id:jpa的主键注解
@GeneratedValue:注解生成策略
3.2:创建repository接口对象
![839e3620996788b29b8fe8b0a420103e.png](https://i-blog.csdnimg.cn/blog_migrate/18343bd1096fd6031e45d60a776984a1.jpeg)
说明:使用jpa的需要继承Jparepository这个对象(有多个,这里就用简单的)
其中泛型,我们查看源码:
![9e8a42a623c744c2f5c60ea04576cf1f.png](https://i-blog.csdnimg.cn/blog_migrate/f4dbe7ad8495962b7e53efa19e435a2f.jpeg)
T:实体对象的。也就是我们上面创建的ProductCategory对象
ID:实体对象的ID类型。我们使用的事Integer类型。所以这里就写Integer。
四:创建测试类,进行测试:
在IDEA中,创建测试类快捷键:选中类名之后,ctrl+shift+t。如下图:
![73af5dc3e0faf2b03a53165c42277d5f.png](https://i-blog.csdnimg.cn/blog_migrate/4fef907e64afecd82ee7c46713301adb.jpeg)
![149b435c208eb306bb98ea06527d25d2.png](https://i-blog.csdnimg.cn/blog_migrate/d809c4319e3b72c0ed2780ec2771a7b3.jpeg)
运行结果:
![61d6f044a790132e1a27cb0e3ca81cda.png](https://i-blog.csdnimg.cn/blog_migrate/2409ac027616e739f449d48962a9bc7b.jpeg)
在控制台上,我们可以看到hibernate打印的sql语句以及打印出查询的结果。说明springboot继承jpa成功。
如果出现could not initialize proyx的时候,如下图错误:
![2e997727ae60f1e9aa07d30d0714d578.png](https://i-blog.csdnimg.cn/blog_migrate/0b5f1469820064af75ea17759bc14024.jpeg)
在实体上面添加@Proxy(lazy = false)
![b38e1b00a7946fd87d85724cee4a0a6d.png](https://i-blog.csdnimg.cn/blog_migrate/d463cc6ef028d014dd3e91911d54c5a4.jpeg)
说明:@ToString 是直接添加toString方法的。