springboot+mysql+mybatis逆向工程

 

最近一直再做hibernate相关的工作,想捡起遗忘了一年的mybatis,就在自己的demo项目中引入了一下 ,记录下过程,这里只生成 mapper和model 和mapper.xml

一、引入依赖

     要用mybatis 首先需要引入相应的依赖,将它放在pom文件 <dependencies> </dependencies> 标签内。

<!--MyBatis整合SpringBoot框架的起步依赖-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.1</version>
</dependency>  

  本文所用mysql版本为 5.7.38

 

如果没有引入mysql依赖,要引入依赖,同样放在 <dependencies> </dependencies> 标签内。

<!-- mysql-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.21</version>
</dependency>

 

二、新建GeneratorMapper.xml 文件在根目录下

 

三、修改文件内容

GeneratorMapper.xml 文件内容如下,其中需要修改的内容是

1.数据库的JDBC驱动包所在位置路径。
2.数据库驱动类、连接地址、用户名、密码 。 注意这里重点说一下驱动!!!
   mysql-connection-java 5以后的版本中(不包括5),使用的是com.mysql.cj.jdbc.Driver;
   mysql-connection-java 5及以前的版本中(包括5),使用的是com.mysql.jdbc.Driver; 这里我是5,所以文档里写的 com.mysql.jdbc.Driver,版本不一样的请自行修改哦。

3.生成model类 :指定model类的包名、生成model类的位置(此处使用的是绝对路径~)改成你自己的(没有model包和mapper包的自己new一个。。。)。

4.mapper映射文件生成的位置,文件生成位置(此处使用的是绝对路径~)改成你自己的。
5.生成MyBatis的Mapper接口类文件(此处使用的是绝对路径~)改成你自己的。

6.tableName 这里没有固定某一个表,用了%,就生成了所有的表哦。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <!--指定连接数据库的JDBC驱动包所在位置,指定到你本机的完成路径-->
    <classPathEntry location="F:\mysql-connector-java-5.1.49\mysql-connector-java-5.1.49.jar"/>
    <!--配置table表信息内容体,targetRuntime指定采用MyBatis3的版本-->
    <context id="tables" targetRuntime="MyBatis3">
        <!--抑制生成注释,由于生成的注释都是英文的,可以不让它生成-->
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/white_jotter?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;allowPublicKeyRetrieval=true"
                        userId="root"
                        password="admin">
        </jdbcConnection>
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- 生成model类,实体Bean
        targetPackage 指定model类的包名
        targetProject:生成model类的位置 -->
        <javaModelGenerator targetPackage="com.evan.wj.model" targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- 实体映射文件 targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="G:\lxlProject\workspace\wj\src\main\resources\">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>

        <!--生成MyBatis的Mapper接口类文件,DAO接口  targetPackage指定Mapper接口类的名 targetPackage:指定生成的Mapper接口放的位置 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.evan.wj.mapper" targetProject="G:\lxlProject\workspace\wj\src\main\java\">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <!--生成全部表tableName设为%-->
        <table tableName="%">
            <generatedKey column="id" sqlStatement="MySql" identity="true"/>
        </table>

<!--        &lt;!&ndash; 数据库表名及对应的Java模型类名 &ndash;&gt;-->
<!--        <table tableName="white_jotter" domainObjectName="book"-->
<!--               enableCountByExample="false"-->
<!--               enableUpdateByExample="false"-->
<!--               enableDeleteByExample="false"-->
<!--               enableSelectByExample="false"-->
<!--               selectByExampleQueryId="false"/>-->
<!--                <table schema="" tableName="admin"></table>-->
<!--                <table schema="" tableName="product_info"></table>-->
<!--                <table schema="" tableName="product_type"></table>-->
<!--                <table schema="" tableName="users"></table>-->

    </context>
</generatorConfiguration>

OK,现在基本要改的都改完了,就开始生成文件喽。

点击右侧maven下的Plugins 下的mybatis-generate:generate 然后执行。

成功喽~~~

 四、问题点

 啥? 你说你没成功?emmmm mmmm mmmmmmmmmm

那就再看看,奥,还有一个地方- 搜索 GeneratorMapper.xml文件中指定连接数据库的JDBC驱动包所在位置,指定到你本机的完成路径。

下载一个mysql驱动,

下载流程 选择 Archives标签

 

 

先选择Operating System ,选择 Platform Independent ,然后再根据你的mysql 驱动和mysql版本选择合适的 驱动版本号。

 

 

 

我依赖是5.1的,下载后找一个地方解压,复制路径+jar的名称,把GeneratorMapper.xml 中 classPathEntry location 路径替换一下试试哦。

 

啥?你说你不知道在哪里下载驱动?  ===> 鸡汤来喽~ mysql驱动包下载地址 https://downloads.mysql.com/archives/c-j/

生成后的文件展示来喽~

mapper接口==dao

mapper.xml

model = entity

 

 

 

参考文档:

https://blog.csdn.net/m0_67391377/article/details/124777417

https://blog.csdn.net/qq_19331985/article/details/104291304

https://www.cnblogs.com/BKYhailong/p/15464846.html

 

posted @ 2022-11-28 17:19  ldlei  阅读(86)  评论(0编辑  收藏  举报