参考:https://mp.weixin.qq.com/s/7jBT-vS7yD4daCzGWFX1OQ?
参考:https://mp.weixin.qq.com/s/fAcOvQutfWosyh10wAjmSA?
参考:https://www.cnblogs.com/hdwang/p/7843405.html
接上一章:https://blog.youkuaiyun.com/romulusla01/article/details/93596723
一、JPA
1、application.properties文件中添加log配置
logging.path会自动生成在项目所在盘符的根目录,比如(E:\user\local\logs)

2、数据库配置
jpa是利用Hibernate生成各种自动化的sql,如果只是简单的增删改查,基本上不用手写了,spring内部已经帮大家封装实现了
添加maven依赖

3、添加下面这个依赖,可以在实体类中增加注解@Data,那就不用写get和set方法了

wait,还要装个插件
下载地址:https://projectlombok.org/download.html

下载得到

使用cmd命令java -jar 你的lombok jar路径,然后会弹出一个框 这里会自动搜索你的eclipse安装路径(如果搜索不到,自行选择),如下图



然后弹出下面的框
选择eclipse路径



检查eclipse安装路径,多了lombok.jar

同时,.ini文件下也增加了一行,最后,重启eclipse

测试一下,成功了

4、application.properties文件中

5、MySql数据库中,我执行drop table t_user;删除掉了之前建的表
6、修改之前写实体类User

7、增加UserRepository,这就是dao层,不用谢任何方法就能支持基础的增删改查

8、不要忘记在启动类中扫包,否则spring是无法对刚刚的实体类和Jpa进行依赖注入的(笔者在这里卡了1个小时,才想到这里)

9、编写单元测试类

10、右键run as Junit,执行成功,不但新建了表,还插入了2行数据

11、测试Jpa默认查询方法,将上一个测试忽略掉,添加下一个

findAll()会查出所有T_User表中的数据,我们比对下是不是2行,测试成功

12、测试自定义简单查询
不用谢任何实现方法,通过实体类的字段,还有And、Or等sql中的语法就能实现简单查询

测试,这里注意assertSame是判断a==b ,assertEquals是判断a.equals(b),这里比较2个对象,应该改用assertEquals


修改、删除、统计也是类似语法。
Long deleteById(Long id);
Long countByUserName(String userName)
13、复杂查询
首先我们多准备一些数据

a、分页
分页查询在实际使用中非常普遍了,spring data jpa已经帮我们实现了分页的功能,在查询的方法中,需要传入参数Pageable ,当查询中有多个参数的时候Pageable建议做为最后一个参数传入。
修改UserRepository

测试


b、限制查询

c、自定义SQL
删除



更新



查询



14、多对多关联
新建类Role和roleRepository


添加数据


新建UserAndRole中间表类

新建关联主键类

新建UserAndRole仓库类

测试,把user和role进行关联


15、多表联查
新建结果集类UserInfo

增加查询方法

测试


本文详细介绍如何在项目中配置和使用JPA,包括日志配置、数据库配置、实体类创建、Repository编写、单元测试、默认查询方法、自定义查询、多对多关联、多表联查等操作。

被折叠的 条评论
为什么被折叠?



