mybatis代码生成器模板配置

1.mybatis代码生成器的介绍

代码生成器的目标就是简化单表的增删改查操作,这些标准化的流程工作,交给机器来实现,不需要程序员自己去完成。一般对一张表的操作有,根据主键查询,根据map集合查询,单条数据插入,批量插入,根据主键删除等等一系列操作,下面就让我们来配置一下代码生成器的环境,如何让mybatis自动实现代码的生成。

2.mybatis代码生成器的配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nPALsNCD-1681361187745)(image/mybatis%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E5%99%A8.assets/image-20230413123843094.png)]

代码生成器配置并不复杂,主要就配置有generator.xml ,生成代码的测试类 GeneratorTest,还要配置相关的依赖文件

3.数据库文件

数据库文件在配置generator.xml的时候会用到,根据数据库表生成java文件
在这里插入图片描述

4.pom.xml配置文件

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.7</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.6</version>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.31</version>
    </dependency>


  </dependencies>

5.generator.xml配置文件

注意:

1.generator.xml注意这个位置是放在和pom.xml文件的同一路径下

2.需要自己准备一个mysql驱动包,版本和数据库的版本对应

<?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>

    <!--mysql驱动jar的位置 直到找到 mysql-connector-java-8.0.16.jar 版本不一致 但是为.jar结尾-->
    <classPathEntry location="D:\developtools\mysqlconnection\mysql-connector-java-8.0.15.jar" />

    <context id="DB2Tables" targetRuntime="MyBatis3">




        <!--数据库的配置信息-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/travel?serverTimezone=Asia/Shanghai"
                        userId="root"
                        password="12345678">
        </jdbcConnection>



        <!--Java实体类的配置信息
        targetPackage:目标包  实体类的位置是在java下
        targetProject:目标工程  src下 java之前
         -->
        <javaModelGenerator targetPackage="com.tz.entity" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>




        <!--映射文件的配置信息-->
        <sqlMapGenerator targetPackage="mappers"  targetProject=".\src\main\resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>



        <!--dao层的配置信息-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.tz.mapper"  targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>



        <!--
            schema:数据库名
            tableName:表名
            domainObjectName:实体类名

            这四个一般为false 不然回生成复杂的增删改查操作
            enableSelectByExample="false" 是否生成复杂的查询操作
            enableCountByExample="false"
            enableDeleteByExample="false"
            enableUpdateByExample="false">
        -->
        <table schema="mybatis" tableName="tab_category" domainObjectName="Category"
               enableSelectByExample="false"
               enableCountByExample="false"
               enableDeleteByExample="false"
               enableUpdateByExample="false">
            <property name="useActualColumnNames" value="true"/>
            <generatedKey column="ID" sqlStatement="DB2" identity="true" />
            <columnOverride column="DATE_FIELD" property="startDate" />
            <ignoreColumn column="FRED" />
            <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
        </table>

        <table schema="mybatis" tableName="tab_favorite" domainObjectName="Favorite"
               enableSelectByExample="false"
               enableCountByExample="false"
               enableDeleteByExample="false"
               enableUpdateByExample="false">
            <property name="useActualColumnNames" value="true"/>
            <generatedKey column="ID" sqlStatement="DB2" identity="true" />
            <columnOverride column="DATE_FIELD" property="startDate" />
            <ignoreColumn column="FRED" />
            <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
        </table>

        <table schema="mybatis" tableName="tab_route" domainObjectName="Route"
               enableSelectByExample="false"
               enableCountByExample="false"
               enableDeleteByExample="false"
               enableUpdateByExample="false">
            <property name="useActualColumnNames" value="true"/>
            <generatedKey column="ID" sqlStatement="DB2" identity="true" />
            <columnOverride column="DATE_FIELD" property="startDate" />
            <ignoreColumn column="FRED" />
            <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
        </table>

        <table schema="mybatis" tableName="tab_route_img" domainObjectName="RouteImg"
               enableSelectByExample="false"
               enableCountByExample="false"
               enableDeleteByExample="false"
               enableUpdateByExample="false">
            <property name="useActualColumnNames" value="true"/>
            <generatedKey column="ID" sqlStatement="DB2" identity="true" />
            <columnOverride column="DATE_FIELD" property="startDate" />
            <ignoreColumn column="FRED" />
            <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
        </table>

        <table schema="mybatis" tableName="tab_seller" domainObjectName="Seller"
               enableSelectByExample="false"
               enableCountByExample="false"
               enableDeleteByExample="false"
               enableUpdateByExample="false">
            <property name="useActualColumnNames" value="true"/>
            <generatedKey column="ID" sqlStatement="DB2" identity="true" />
            <columnOverride column="DATE_FIELD" property="startDate" />
            <ignoreColumn column="FRED" />
            <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
        </table>

        <table schema="mybatis" tableName="tab_user" domainObjectName="User"
               enableSelectByExample="false"
               enableCountByExample="false"
               enableDeleteByExample="false"
               enableUpdateByExample="false">
            <property name="useActualColumnNames" value="true"/>
            <generatedKey column="ID" sqlStatement="DB2" identity="true" />
            <columnOverride column="DATE_FIELD" property="startDate" />
            <ignoreColumn column="FRED" />
            <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
        </table>


    </context>
</generatorConfiguration>

6.GeneratorTest生成代码

import org.junit.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class GeneratorTest {
    @Test
    public void test01() throws Exception{
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        File configFile = new File("generator.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
    }

}

7.完成之后的截图

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis是一个非常流行的Java持久化框架,它提供了一种简单而高效的方式来访问数据库。为了减少重复的编码工作,可以使用MyBatis代码生成器来自动生成基于数据库表结构的实体类、Mapper接口和XML映射文件。 下面是一个基本的MyBatis代码生成器的思路: 1. 配置数据库连接信息:首先需要配置数据库连接的URL、用户名和密码等信息,以便代码生成器可以连接到数据库。 2. 解析数据库表结构:通过连接到数据库代码生成器将解析数据库中的表结构,包括表名、列名、列类型等信息。 3. 根据表结构生成实体类:根据解析得到的表结构信息,代码生成器可以自动生成对应的实体类。实体类通常包含与表中列相对应的字段,以及相应的getter和setter方法。 4. 生成Mapper接口:代码生成器可以根据表名和列名等信息生成Mapper接口。Mapper接口定义了与数据库交互的方法,例如插入、更新、删除和查询等操作。 5. 生成XML映射文件:XML映射文件是MyBatis中用于描述SQL语句与Mapper接口方法之间映射关系的文件。代码生成器可以通过解析表结构信息自动生成对应的XML映射文件。 6. 自定义配置模板代码生成器通常提供一些自定义配置选项,以便根据具体需求生成不同风格的代码。同时,可以根据需要自定义代码生成模板,以满足个性化需求。 总结来说,MyBatis代码生成器可以帮助开发人员自动化生成与数据库交互的代码,减少重复劳动,提高开发效率。不过需要注意的是,自动生成的代码通常是基于表结构的简单CRUD操作,对于复杂业务逻辑可能仍需要手动编写。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值