# 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} ```