阶段一-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&amp;autoReconnect=true&amp;zeroDateTimeBehavior=convertToNull&amp;useUnicode=true&amp;useSSL=false&amp;serverTimezone=UTC

 遇到的其他问题

没有resources目录,造成没有生成xml映射文件

手动的创建resources目录即可。

 

 

 

结束

 

posted @ 2019-12-15 19:00  高山-景行  阅读(297)  评论(0编辑  收藏  举报