1.创建springboot项目
2.添加对应的依赖
3.mybatisplus的pom.xml文件中添加相应的依赖
4.mybatis-plus的application.yml文件中配置数据源信息
5.DataSourceProperties.class源码获取的是mybatis-plus的application.yml文件中配置数据源信息
6.创建实体类对象
7.创建UserMapper接口
8.该接口添加Junit5测试
9.遍历所有的User对象,并且输出
10.切记一定要使用@MapperScan扫描mapper中所有的UserMappper接口
11.加入log-impl可以在进行数据库的CRUD操作时、通过日志在控制台打印出sql语句
12. 通过@TableName中value给定的user,实现该实体类Account与我指定的User表实现映射关系
13.@TableField(value = “name”)实现title与我表中的name字段进行映射
14. 生成策略、解释:主键以自动增长的方式、手动输入的方式、雪花算法的方式(默认)、还是ASSIGN_ID、ASSIGN_UUID的方式,生成的id添加到数据库中
15.进行添加的操作、增加用户记录、查看uuid的生成策略
16. TableField映射非主键字段、value为映射的字段名字、exit=false表示该字段不是为数据库中的字段,实现过程如下所示
- @TableField(value=“name”,select=false) 的select查询时不查询该注解描述的title字段
18.修改User表、添加修改时间和创建时间
- @TableField(fill=FieldFill.INESET)的添加时、自动生成时间、添加到数据库中
- @TableField(fill=FieldFill.INESET)插入和更新、自动生成时间、添加到数据库中
21.注意红色花圈部分
21.因为向用户表中添加数据时、创建时间和修改时间、自动生成后添加到数据表中,所以要配置一个全局的过滤器、当向数据库插入数据之前、给自动生成的字段添加数据、在添加到数据库中
22.插入时、自动生成时间,给User实体类中的createTime这个字段和updateTime这个字段,然后添加到数据库中,修改时,自动生成的时间给User实体类中的updateTime这个字段,然受在向数据库中添加数据
23.实现添加操作
24.修改User表中的id字段的类型
25. 实现乐观锁、解释:乐观锁多线程的情况下同时修改一个相同的数据、只保证其中一个线程修改成功
26.创建MyBatisPlusConfig这个类、将乐观锁对象(OptimisticLokerIntercepter)交给spring容器管理
27.模拟多线程修改操作,因为user和user1已经获取查询结果,对user1进行修改之后、vesion这个字段+1、对user进行修改时、因为version时以前的值,而user1进行了修改、所以此时user不能修改成功
28.添加@version后,实现的效果如下图所示
29.将数据库中的字段映射成枚举对象、
30.修改数据库表user、添加statu列
31.创建枚举类型StatusEnum
32.在枚举中添加WORK、REST成员
33.变量code添加@EnumValue实现枚举成员(WORK/REST)与User表字段的statu实现映射关系
34.这个status必须与User表字段status对应或者使用TableField注解设置value值与表字段名对应
35.实现枚举类型与表字段的映射必须进行以下配置
36.该启动类调用的是
37.以接口的方式实现枚举的成员和表字段进行映射
38. User.Class的age变量的类型修改为枚举类型
39.如果进行修改操作、直接传入枚举类型的成员即可
40.User表中添加deleted这一列
41. User.java中添加deleted这一列
42.因为要实现逻辑配置,应该添加如下信息
43.user表中添加相应的deleted这一列
44. 进行测试,User的deleted字段为1的数据查询不出来、实现逻辑删除
45. 不加任何条件的查询
46.添加条件进行查询 select * from user where name=“小红”
47. select * from user sql语句后 的条件为 where name = ‘小红’ and age = ‘3’
48.select * from user sql语句后添加where age>2
49.select * from user sql语句后添加where name !=‘小红’
50. select * from user sql后的条件where age>=2
51. select * from user sql后的条件where name like ‘%小%’
52. select * from user sql后的条件where name like ‘%小’
53. select * from user sql后的条件where name like ‘%小’
54.select * from user 多张表实现连接查询
55.select * from user sql语句后添加 order by age
56.select * from user sql语句后添加order by age having id>8
57.select * from user sql语句后where id in (7,8,9)
58.自动生成controller、service、serviceimpl、mapper、dao,mybatisplus的pom.xml文件中添加如下配置信息
59.数据源的url信息如下
60.setOutputDir方法user.dir该工程的绝对路径、后加上我需要把代码生成到那个包下面
61.以下红线处添加的是类中的作者信息
62.setParent设置的是该包下设置生成各层的配置信息
63.setServiceName解释:生成的是IUserService这个服务层的类,去掉服务层的这个I,生成UserService
64.生成的各层的类放在src/main/java目录下的com.southwind.mybatisplus包下的generator的包下的controller、service、serviceimpl、mapper、entity这些子包下
65.setName/setColumnNaming设置驼峰命名规则、使得表中的user_id生成实体类时变成userId
66.切记驼峰命名的规则userName需要添加TableField注解实现实体类与表的映射
67.添加thymeleaf配置,设置访问哪个模板下的哪个html文件
68.添加index.html
69.启动MybatisplusApplication这个启动类
70.重新创建springboot工程
71.添加主方法
72.注意setOutputDir的路径、和setParent路径的问题,具体可以与生成代码的各个目录进行对比(及可了解)
73.注意扫描的包路径
74.命令行窗口运行.jar文件
75.连接远程的服务器
76.本地的jar文件拖到云端上面
77.Terminus命令窗口运行如下语句即可
78.修改数据源配置信息
79.生成我指定的表