参考: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.csdn.net/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
增加查询方法
测试