阶段一-01.万丈高楼,地基首要-第2章 单体架构设计与准备工作-2-17 MyBatis 数据库逆向生成工具

提供的代码


MyMapper类是作者提供的

要用到的配置文件。

包名加类名的设置

数据源

pojo的包名和我们实际的项目是对应的

打开我们的项目foodie-dev这个项目。

里面有com.imooc.pojo的包

生成的mapper的xml的路径

和我们项目里的这个文件夹对应

在逆向工程的文件夹下也是有这个路径

mapper的包名


生成需要设置数据库的表

对应数据库的表。

可以把数据库内所有的表 都粘贴到这里

GeneratorDisplay。这个类是用来运行我们的xml

解析,然互进行一步一步的操作。逆向的生成。

我们只需要右键去运行这个

警告可以不用管。
生成后的文件
mapper下生成了很多mapper后缀的文件。

继承了通用Mapper

pojo的包下生成的实体类

如果字段是完全的一样的话,它在前面是没有这个@Column的注解的。如果字段在数据库内有下划线的,生成的实体类会改成驼峰式的,这是java里面的开发规范。

注释也都会展示出来。

mapper对应的xml

为我们生成了ResultMapper

复制生成的文件到真正项目里
例如先拷贝mapper下的mapper类文件。


Ctrl+C在生成的项目里面复制,


实体类的复制

添加引用pom.xml内
根目录下的pom.xml

<!-- 通用mapper逆向工具 -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
api项目的application.yml

############################################################ # # mybatis mapper 配置 # ############################################################ # 通用 Mapper 配置 mapper: mappers: com.imooc.my.mapper.MyMapper not-empty: false # 在进行数据库操作的的时候,判断表达式 username != null, 是否追加 username != '' identity: MYSQL
在逆向工程里面 复制这个类 过来

foodie-dev-mapper工程内。先创建一个包

然后再复制过来

这样这里的错误提示就没了。

not-empty在做更新操作或者插入的操作会有一些判断,这些判断的时候,会判断某一个属性是否为null,是否为空,

推荐不依赖框架给你追加 不为空,推荐用手写的方式去判断。

identity设置为MySql。数据方言。
4
安装编译,看看当前代码有没有问题。

运行api

http://localhost:8088/hello

以上逆向工具使用完成。
MySql8代码生成(注意事项)
首先把mysql的jar依赖的版本换成一个高版本的。这里我换成了8.0.17原来的版本是5.1.14
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
然后mysql的链接字符串报了一个错误,
The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You mu
通过百度搜索,解决方法就是在链接字符串的后面加上参数serverTimezone=UTC
https://blog.csdn.net/zhongaiyisheng_/article/details/102556867
最终用的链接字符串:
jdbc:mysql://localhost:3306/foodie-shop-dev?characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useUnicode=true&useSSL=false&serverTimezone=UTC
遇到的其他问题
没有resources目录,造成没有生成xml映射文件

手动的创建resources目录即可。

结束
浙公网安备 33010602011771号