当前位置: 首页 > news >正文

Mybatis - generator(自动生成)

1、生成数据库数据

2、配置pom文件

这个plugin文件里有配置项和依赖以及版本号

修改configurationFile路径为项目里存在的generatorConfig.xml文件,因为后续的配置都在这个文件中进行。

<plugin>
                    <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                    <configurationFile>
                        E:\Java\java初阶学习\JavaCode\java-learning\others\MybatisPlusTest\src\main\resources\generator\generatorConfig.xml
                    </configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.6</version>
                    </dependency>
                </dependencies>
            </plugin>

3、配置generatorConfig.xml文件

这里面有几个地方需要自己进行修改。

  • 驱动包的路径,要配置成自己电脑里的连接数据库的驱动包
  • 连接配置,需要自己输入数据库的id和密码
  • 实体类生成的位置:需要在指定的目录下创包
  • mapper.xml生成的位置:需要在指定的目录下创包
  • DAO生成的位置:需要在指定的目录下创包
  • 配置数据库中的表,table_name是数据库中表的名字,domainObjectName是对应的java中对象的名字(需修改或新建)
<?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>
    <!-- 驱动包路径,location中路径替换成⾃⼰本地路径 -->
    <classPathEntry location="C:\environment\mysql-connector-java-5.1.49"/>
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!-- 禁⽤⾃动⽣成的注释 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
            <property name="suppressDate" value="true"/>
        </commentGenerator>
        <!-- 连接配置 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/forum_db?characterEncoding=utf8&amp;useSSL=false"
                        userId="root"
                        password="">
        </jdbcConnection>
        <javaTypeResolver>
            <!-- ⼩数统⼀转为BigDecimal -->
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 实体类⽣成位置 -->
        <javaModelGenerator targetPackage="com.example.mybatisplustest.model"
                            targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- mapper.xml⽣成位置 -->
        <sqlMapGenerator targetPackage="mapper"
                         targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!-- DAO类⽣成位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.example.mybatisplustest.dao" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!-- 配置⽣成表与实例, 只需要修改表名tableName, 与对应类名domainObjectName 即可-->
        <table tableName="t_article" domainObjectName="Article"
               enableSelectByExample="false"
               enableDeleteByExample="false" enableDeleteByPrimaryKey="false"
               enableCountByExample="false"
               enableUpdateByExample="false">
            <!-- 类的属性⽤数据库中的真实字段名做为属性名, 不指定这个属性会⾃动转换为驼峰命名规则-->
            <property name="useActualColumnNames" value="true"/>
        </table>
        <table tableName="t_article_reply" domainObjectName="ArticleReply"
               enableSelectByExample="false"
               enableDeleteByExample="false" enableDeleteByPrimaryKey="false"
               enableCountByExample="false"
               enableUpdateByExample="false">
            <property name="useActualColumnNames" value="true"/>
        </table>
        <table tableName="t_board" domainObjectName="Board"
               enableSelectByExample="false" enableDeleteByExample="false"
               enableDeleteByPrimaryKey="false" enableCountByExample="false"
               enableUpdateByExample="false">
            <property name="useActualColumnNames" value="true"/>
        </table>
        <table tableName="t_message" domainObjectName="Message"
               enableSelectByExample="false"
               enableDeleteByExample="false" enableDeleteByPrimaryKey="false"
               enableCountByExample="false"
               enableUpdateByExample="false">
            <property name="useActualColumnNames" value="true"/>
        </table>
        <table tableName="t_user" domainObjectName="User"
               enableSelectByExample="false" enableDeleteByExample="false"
               enableDeleteByPrimaryKey="false" enableCountByExample="false"
               enableUpdateByExample="false">
            <property name="useActualColumnNames" value="true"/>
        </table>
    </context>
</generatorConfiguration>

4、收尾工作

  1. 在每一个xml文件中的插入语句的后面加入useGeneratedKeys="true" keyProperty="id" >
  2. 在dao文件中的每个Mapper语句上方,加上@Mapper注解
  3. 在model中加@Data,删除get set
  4. 配置扫描路径,在config包下,新建一个MybatisConfig类,用于指定扫描路径
@Configuration
@MapperScan("com/example/mybatisplustest/dao")
public class MybatisConfig{

}

5.yml文件中配置扫描路径

mybatis:
    mapper-locations: classpath:mapper/**/*.xml

相关文章:

  • 蓝桥杯(3.2)
  • 前端vue后端go实现大文件分片下载
  • python笔记_程序流程控制
  • python毕设选题 - 大数据商城人流数据分析与可视化 - python 大数据分析
  • kafka消费者重平衡是什么?怎么避免?
  • GPT与MBR:硬盘分区表格式的革新与区别
  • sql基本语法+实验实践
  • 李沐动手学习深度学习——3.2练习
  • leetcode 简单
  • type may not be empty [type-empty]
  • 飞天使-学以致用-devops知识点4-SpringBoot项目CICD实现(实验失败,了解大概流程)
  • 武器大师——操作符详解(下)
  • docker 转为docker-compose(composerize 命令)
  • OpenCV下载与变量配置
  • 苍穹外卖学习 Day10 Day11 Day12
  • Unity(第十四部)光照
  • 《TCP/IP详解 卷一》第7章 防火墙和NAT
  • iOS消息发送流程
  • Vue.js中的$nextTick
  • rsync远程同步
  • 特朗普政府称将恢复被终止的外国学生合法身份
  • 钱学森数据服务中心在沪上线,十万个数字资源向公众开放
  • 商务部:已有超1.2亿人次享受到以旧换新补贴优惠
  • 预热苏杯,“谁羽争锋”全国新闻界羽毛球团体邀请赛厦门开赛
  • “谁羽争锋”全国新闻界羽毛球团体邀请赛在厦门开赛
  • 高糖高脂食物可能让你 “迷路”