# PgBatis3AutoCode
**Repository Path**: tommygun/PgBatis3AutoCode
## Basic Information
- **Project Name**: PgBatis3AutoCode
- **Description**: MyBatis3的代码自动生成工具,简单实用,java,for PostgreSQL。
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 69
- **Forks**: 14
- **Created**: 2018-01-16
- **Last Updated**: 2024-08-23
## Categories & Tags
**Categories**: code-generator
**Tags**: None
## README
# PgBatis3AutoCode
MyBatis3的代码自动生成工具,简单实用,java,for PostgreSQL。优点:
* 配置使用简单
* 根据数据库脚本批量生成model、dao、dao.xml、service、service.impl以及基础的增删改查分页的业务代码模板
* 将数据脚本中的注释完美地嵌入代码中。
* 本项目还有 For MySQL 的版本,详见:[MyBatis3AutoCode](https://gitee.com/tommygun/MyBatis3AutoCode)
## 使用方法
### 1、生成数据库脚本
* 数据库脚本文件以 .sql 结尾;
* 所有数据库脚本文件请放在同一个文件夹下,不要放在子目录中;
* 程序自动遍历所有脚本文件,根据建表脚本生成代码,建表脚本格式:
```
CREATE TABLE "TB_Users"(
"ID" integer NOT NULL,
"UserName" character varying(50) COLLATE "default" NOT NULL,
"UserLevel" smallint NOT NULL,
"UserNotes" character varying(200) COLLATE "default" DEFAULT NULL::character varying,
CONSTRAINT TB_Users_pkey PRIMARY KEY ("ID")
)
WITH (
OIDS = FALSE
)
;
COMMENT ON TABLE "TB_Users" IS '用户表';
COMMENT ON COLUMN "TB_Users"."ID" IS '用户ID';
COMMENT ON COLUMN "TB_Users"."UserName" IS '用户姓名';
COMMENT ON COLUMN "TB_Users"."UserLevel" IS '用户级别';
COMMENT ON COLUMN "TB_Users"."UserNotes" IS '用户注释';
```
注意:必须有字段注释和表注释!
### 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 PgBatis3AutoCode.jar config.xml
```
其中:PgBatis3AutoCode.jar 为生成的 jar 包, config.xml 为配置文件路径。
3.使用方法2:行执行下列命令,生成某一张表的代码:
```
java -jar PgBatis3AutoCode.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}
```