# MyBatis3AutoCode **Repository Path**: tommygun/MyBatis3AutoCode ## Basic Information - **Project Name**: MyBatis3AutoCode - **Description**: MyBatis3的代码自动生成工具,简单实用,java,for MySQL。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 48 - **Forks**: 21 - **Created**: 2016-10-06 - **Last Updated**: 2025-06-19 ## Categories & Tags **Categories**: database-dev **Tags**: None ## README # MyBatis3AutoCode (For MySQL) MyBatis3的代码自动生成工具,简单实用,java,for MySQL。优点: * 配置使用简单 * 根据数据库脚本批量生成model、dao、dao.xml、service、service.impl以及基础的增删改查分页的业务代码模板 * 将数据脚本中的注释完美地嵌入代码中。 * 本项目还有 For PostgreSQL 的版本,详见:[PgBatis3AutoCode](https://gitee.com/tommygun/PgBatis3AutoCode) ## 使用方法 ### 1、生成数据库脚本 * 数据库脚本文件以 .sql 结尾; * 所有数据库脚本文件请放在同一个文件夹下,不要放在子目录中; * 程序自动遍历所有脚本文件,根据建表脚本生成代码,建表脚本格式: ``` CREATE TABLE `TB_Users` ( `ID` int(11) NOT NULL COMMENT '用户ID', `UserName` varchar(50) NOT NULL COMMENT '用户姓名', `UserLevel` tinyint(4) NOT NULL COMMENT '用户级别', `UserNotes` varchar(200) DEFAULT NULL COMMENT '用户注释', PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表'; ``` 注意:必须有字段注释和表注释! ### 2、生成配置文件 配置文件格式如下: ``` com.bookool.demo TB_ /root/demo/table /root/demo/demo/src/main/java/com/bookool/demo/model /root/demo/demo/src/main/java/com/bookool/demo/dao /root/demo/demo/src/main/java/com/bookool/demo/service /root/demo/demo/src/main/java/com/bookool/demo/service/impl ``` 注意:目录必须存在! ### 3、执行 1.生成jar包; 2.使用方法1:行执行下列命令,生成所有代码: ``` java -jar MyBatis3AutoCode.jar config.xml ``` 其中:MyBatis3AutoCode.jar 为生成的 jar 包, config.xml 为配置文件路径。 3.使用方法2:行执行下列命令,生成某一张表的代码: ``` java -jar MyBatis3AutoCode.jar config.xml TableName ``` 其中:TableName为表名(不加前缀)。 ## 注意 * 表脚本必须要有字段注释和表注释。 * 程序会生成 autocode.log 日志文件。 * 仅支持 UTF-8 。 ## 生成的dao下的xml文件示例: ``` ID, UserName, UserLevel, UserNotes LIMIT #{Offset,jdbcType=INTEGER}, #{Rows,jdbcType=INTEGER} DELETE FROM TB_Users WHERE ID = #{id,jdbcType=INTEGER} INSERT INTO TB_Users ( ID, UserName, UserLevel, UserNotes) VALUES ( #{id, jdbcType=INTEGER}, #{username, jdbcType=VARCHAR}, #{userlevel, jdbcType=TINYINT}, #{usernotes, jdbcType=VARCHAR}) INSERT INTO TB_Users id, username, userlevel, usernotes, #{id, jdbcType=INTEGER}, #{username, jdbcType=VARCHAR}, #{userlevel, jdbcType=TINYINT}, #{usernotes, jdbcType=VARCHAR}, UPDATE TB_Users UserName = #{username,jdbcType=VARCHAR}, UserLevel = #{userlevel,jdbcType=TINYINT}, UserNotes = #{usernotes,jdbcType=VARCHAR}, WHERE ID = #{id,jdbcType=INTEGER} UPDATE TB_Users UserName = #{username,jdbcType=VARCHAR}, UserLevel = #{userlevel,jdbcType=TINYINT}, UserNotes = #{usernotes,jdbcType=VARCHAR}, WHERE ID = #{id,jdbcType=INTEGER} ``` ## 更新: ### 17-2-2 1、表前缀现在可以为空了; 2、修改了获取字段的正则表达式的bug。 ### 17-2-15 1、可指定生成某一张表的代码。 ``` java -jar MyBatis3AutoCode.jar config.xml TableName ``` 其中:TableName为表名(不加前缀)。 ### 17-2-23 1、修改了bug。 ### 17-3-4 1、修改了错误的单词。 ### 17-4-1 1、修改了时间类型的错误。 ### 17-4-12 1、修改了Bug。 ### 17-4-16 1、修改了数据类型Bug。 ### 17-5-5 1、修改了检测空的Bug。 ### 17-6-10 1、所有字段统一了大小写。 ### 18-1-21 1、修改了小Bug。 2、增加了 For PostgreSQL 的版本,详见:[PgBatis3AutoCode](https://gitee.com/tommygun/PgBatis3AutoCode)