mybatis-generator代码自动生成工具(使用maven-plugin运行)

  • Post author:
  • Post category:其他



mybatis-generator介绍

mybatis-generator通过丰富的配置可以生成不同类型的代码,代码包含了
数据库表对应的实体类、Mapper接口类、Mapper.xml映射文件和Example对象
这些代码中几乎包含了全部的单表操作,可以减少很多重复工作。


1、创建generatorConfig.xml文件,以及配置的介绍

<?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>
    <!-- properties用来引入属性外部文件,比如引入数据库信息 -->
    <properties resource="generatorConfig.properties"/>
    <!-- context用来指定一组对象生成的环境,例如要连接的数据库,
    要生成数据库的类型和要处理的数据库中的表 -->
    <context id="testTables" targetRuntime="MyBatis3" 
        defaultModelType="flat">
        <!-- MySQL的分隔符 -->
        <property name="beginningDelimiter" value="'"/>
        <property name="endingDelimiter" value="'"/>
        <!-- 来配置如何生成注释信息 -->
        <commentGenerator>
            <!-- 阻止生成注释,默认为false -->
            <property name="suppressAllComments" value="true" />
            <!-- 是否添加数据库表的备注信息,默认为false -->
            <property name="addRemarkComments" value="true"/>
        </commentGenerator>
        <!-- jdbcConnection:数据库连接的信息 -->
        <jdbcConnection driverClass="${jdbc.driverClass}"
            connectionURL="${jdbc.jdbcUrl}" 
            userId="${jdbc.user}"
            password="${jdbc.password}">
        </jdbcConnection>
        <!-- javaTypeResolver:指定JDBC类型和Java类型的转换 -->
        <javaTypeResolver>
            <!--forceBigDecimals:是否将Decimal和NUMERIC类型转换
            为Java类型的java.math.decimal  -->
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- javaModelGenerator:用来控制生成实体类 -->
        <!-- targetPackage:生成存放实体类的包名 -->
        <!-- targetProject:指定目标项目路径-->
        <javaModelGenerator targetPackage="${pojoTargetPackage}"
            targetProject="${targetProject}">
            <!-- 默认为false,使用 targetPackage指定的包 -->
            <property name="enableSubPackages" value="false" />
            <!-- trimStrings:是否对数据库的查询结果进行trim操作,默认false -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- sqlMapGenerator:配置SQL映射生成器(mapper.xml) -->
        <sqlMapGenerator targetPackage="${xmlTargetPackage}" 
            targetProject="${targetProject}">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <!-- javaClientGenerator:配置生成的mapper接口 -->
        <!-- type="XMLMAPPER" 所有的方法都在XMl中 
            推荐使用,接口和XML完全分离,接口中不出现SQL语句,
            修改SQL不需要重新编译 -->
        <javaClientGenerator type="XMLMAPPER"
            targetPackage="${mapperTargetPackage}" 
            targetProject="${targetProject}">
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <!-- 指定数据库表,只有在table中配置的表,才能经过上面配置生成最终的代码 -->
        <!-- tableName:表名 -->
        <!-- 生成全部的表   tableName="%" -->
        <!-- domainObjectName:生成的实体类名,没有指定,则根据表名来生成 -->
        <table tableName="user" domainObjectName="User">
            <!-- generatedKey:用来指定生成的主键 
            会在Insert语句中添加 selectKey标签 -->
            <generatedKey column="id" sqlStatement="MySql"/>
        </table>
        <table tableName="orders" domainObjectName="Oeders"></table>
    </context>
</generatorConfiguration>


2、创建generatorConfig.properties属性文件,

#mysql
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/mybatis
jdbc.user=root
jdbc.password=root
#指定项目路径
targetProject=src/main/java
#存放实体类的包名
pojoTargetPackage=com.wxx.pojo
#存放Mapper接口的包名
mapperTargetPackage=com.wxx.mapper
#存放Mapper.xml的包名
xmlTargetPackage=com.wxx.mapper


3、在pom.xml文件下添加mybatis-generator依赖

<!-- mybatis生成器 -->
<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.7</version>
</dependency>
<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.7</version>
</dependency>


4、在pom.xml文件添加插件配置

<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.7</version>
    <dependencies>
        <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
               <version>5.1.32</version>
        </dependency>
    </dependencies>
    <configuration>
        <!--配置文件的路径-->
        <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile> 
        <overwrite>true</overwrite>
    </configuration>
</plugin>


5、执行maven命令 mvn mybatis-generator:generate

当前项目必须执行过mvn install命令,将当前项目安装到本地仓库,否则会
找不到当前项目的依赖。

在pom.xml文件中邮件Run AS ->Maven build选项

这里写图片描述


执行成功,刷新项目,可以看到生成的代码


这里写图片描述


7、代码测试


Example封装查询条件

private UserMapper mapper;
//查询所有用户信息
public List<User> findUsers() {
    return mapper.selectByExample(null);
}
public List<User> findUsersByCondition(String userName, String sex) {
    //封装用户查询条件的Example
    UserExample example = new UserExample();
    //创建Criteria,用来封装查询条件
    Criteria criteria = example.createCriteria();
    criteria.andUserNameLike("%"+userName+"%");
    criteria.andSexEqualTo(sex);
    return mapper.selectByExample(example);
}



版权声明:本文为qq_27046951原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。