Mybatis-dao层代码自动生成工具

 1、代码结构:

2、配置文件解析: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>
    <classPathEntry location="D:/SVN/OTC/TestSSM/src/main/resources/mysql-connector-java-5.1.38.jar"/>
    <context id="MySqlContext" targetRuntime="MyBatis3Simple">
        <commentGenerator>
            <property name="suppressAllComments" value="false" />
        </commentGenerator>

        #数据库连接信息url,user,password根据自身需要填写
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL=""
                        userId=""
                        password="">
        </jdbcConnection>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <javaModelGenerator targetPackage="com.jason.bean" targetProject="D:/SVN/OTC/TestSSM/src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <sqlMapGenerator targetPackage="resources.mapper" targetProject="D:/SVN/OTC/TestSSM/src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <javaClientGenerator targetPackage="com.jason.dao"  targetProject="D:/SVN/OTC/TestSSM/src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <table tableName="user_test" domainObjectName="UserBean"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false">
             <generatedKey column="id" sqlStatement="MySql"/>
        </table>

    </context>
</generatorConfiguration>

3、手工拷贝数据库驱动程序jar包到项目文件目录:

  D:/SVN/OTC/TestSSM/src/main/resources/mysql-connector-java-5.1.38.jar

4、代码生成程序:

package com.jason.util;

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

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;

/*
 * 读取代码生成器配置自动生成代码
 * */
public class Generator {

    public static void main(String[] args) throws Exception{
        //执行过程中的警告信息
        List<String> warnings = new ArrayList<String>();
        //生成的代码重复时,覆盖原代码
        boolean overwrite = true;
        //读取配置文件
        InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(is);
        is.close();

        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        //创建代码生成器
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback,warnings);
        //执行生成代码
        myBatisGenerator.generate(null);
        //输出警告信息
        for(String warning : warnings) System.out.println(warning);
    }
}

5、数据库建表脚本:

REATE TABLE `user_test` (
  `id` bigint(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_name` varchar(132) NOT NULL COMMENT '用户姓名',
  `password` varchar(64) NOT NULL COMMENT '密码',
  `sex` int(2) NOT NULL COMMENT '性别',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
  `add_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

6、运行Generator代码生成器:

7、常见问题:

      targetProject配置成项目相对路径时: /src/main/java或者./ src/main/java  或者 TestSSM/src/main/java 运行代码生成器会报以下错误:

      The specified target project directory /src/main/java does not exist

      最后没有办法,把路径改成了磁盘绝对路径,问题才解决。大家有遇到类似问题,欢迎下面留言,如何改成相对路径???

猜你喜欢

转载自blog.csdn.net/jason_jiahongfei/article/details/100191349
今日推荐