# 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)