• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MyBatis3AutoCode: MyBatis3的代码自动生成工具,简单实用,java,for MySQL。 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

MyBatis3AutoCode

开源软件地址:

https://gitee.com/tommygun/MyBatis3AutoCode

开源软件介绍:

MyBatis3AutoCode (For MySQL)

MyBatis3的代码自动生成工具,简单实用,java,for MySQL。优点:

  • 配置使用简单
  • 根据数据库脚本批量生成model、dao、dao.xml、service、service.impl以及基础的增删改查分页的业务代码模板
  • 将数据脚本中的注释完美地嵌入代码中。
  • 本项目还有 For PostgreSQL 的版本,详见: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、生成配置文件

配置文件格式如下:

<?xml version="1.0" encoding="UTF-8" ?><Config>	<!-- 包名 -->	<PackageName>com.bookool.demo</PackageName>	<!-- 数据表前缀(可以为空) -->	<TableNamePrefixion>TB_</TableNamePrefixion>	<!-- 数据表脚本文件所在目录 -->	<TableScriptDir ConType="dir">/root/demo/table</TableScriptDir>	<!-- model目录 -->	<ModelDir ConType="dir">/root/demo/demo/src/main/java/com/bookool/demo/model</ModelDir>	<!-- dao目录 -->	<DaoDir ConType="dir">/root/demo/demo/src/main/java/com/bookool/demo/dao</DaoDir>	<!-- service目录 -->	<ServiceDir ConType="dir">/root/demo/demo/src/main/java/com/bookool/demo/service</ServiceDir>	<!-- service.impl目录 -->	<ServiceImplDir ConType="dir">/root/demo/demo/src/main/java/com/bookool/demo/service/impl</ServiceImplDir></Config>

注意:目录必须存在!

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文件示例:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><!-- 用户表 --><mapper namespace="cn.run2.TG.HelloWorld.dao.UsersMapper" >	<resultMap id="BaseResultMap" type="com.bookool.demo.model.Users" >		<!-- 用户ID -->		<id column="ID" property="id" jdbcType="INTEGER" />		<!-- 用户姓名 -->		<result column="UserName" property="username" jdbcType="VARCHAR" />		<!-- 用户级别 -->		<result column="UserLevel" property="userlevel" jdbcType="TINYINT" />		<!-- 用户注释 -->		<result column="UserNotes" property="usernotes" jdbcType="VARCHAR" />	</resultMap>	<sql id="Base_Column_List" >		ID, UserName, UserLevel, UserNotes	</sql>	<!-- 分页 -->	<sql id="Page">		<if test="Offset!=null and Rows!=null">			LIMIT #{Offset,jdbcType=INTEGER}, #{Rows,jdbcType=INTEGER}		</if>	</sql>	<!-- 基础模板 取得 Users 分页列表 -->	<select id="baseselectListPage" resultMap="BaseResultMap" parameterType="java.util.Map" >		SELECT		<include refid="Base_Column_List" />		FROM TB_Users		<trim prefix="WHERE" prefixOverrides="AND|OR">			<if test="id!=null">				AND ID = #{id, jdbcType=INTEGER}			</if>			<if test="username!=null and username!=''">				AND UserName LIKE CONCAT('%', #{username, jdbcType=VARCHAR}, '%')			</if>			<if test="userlevel!=null">				AND UserLevel = #{userlevel, jdbcType=TINYINT}			</if>			<if test="usernotes!=null and usernotes!=''">				AND UserNotes LIKE CONCAT('%', #{usernotes, jdbcType=VARCHAR}, '%')			</if>		</trim>		<include refid="Page"></include>	</select>	<!-- 基础模板 取得一个 Users 对象 -->	<select id="baseselectTopOneByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >		SELECT		<include refid="Base_Column_List" />		FROM TB_Users		WHERE ID = #{id,jdbcType=INTEGER}		LIMIT 0,1	</select>	<!-- 基础模板 删除 Users 中的数据 -->	<delete id="basesdeleteByPrimaryKey" parameterType="java.lang.Integer" >		DELETE FROM TB_Users		WHERE ID = #{id,jdbcType=INTEGER}	</delete>	<!-- 基础模板 添加一条完整的 Users 记录 -->	<insert id="baseinsert" parameterType="cn.run2.TG.HelloWorld.model.Users" >		INSERT INTO TB_Users (			ID, UserName, UserLevel, UserNotes)		VALUES (			#{id, jdbcType=INTEGER}, #{username, jdbcType=VARCHAR}, 			#{userlevel, jdbcType=TINYINT}, #{usernotes, jdbcType=VARCHAR})	</insert>	<!-- 基础模板 添加一条 Users 记录 -->	<insert id="baseinsertSelective" parameterType="com.bookool.demo.model.Users" >		INSERT INTO TB_Users		<trim prefix="(" suffix=")" suffixOverrides="," >			<if test="id!=null" >				id,			</if>			<if test="username!=null" >				username,			</if>			<if test="userlevel!=null" >				userlevel,			</if>			<if test="usernotes!=null" >				usernotes,			</if>		</trim>		<trim prefix="VALUES (" suffix=")" suffixOverrides="," >			<if test="id!=null" >				#{id, jdbcType=INTEGER},			</if>			<if test="username!=null" >				#{username, jdbcType=VARCHAR},			</if>			<if test="userlevel!=null" >				#{userlevel, jdbcType=TINYINT},			</if>			<if test="usernotes!=null" >				#{usernotes, jdbcType=VARCHAR},			</if>		</trim>	</insert>	<!-- 基础模板 更新完整的 Users 记录 -->	<update id="baseupdate" parameterType="com.bookool.demo.model.Users" >		UPDATE TB_Users		<set>			UserName = #{username,jdbcType=VARCHAR},			UserLevel = #{userlevel,jdbcType=TINYINT},			UserNotes = #{usernotes,jdbcType=VARCHAR},		</set>		WHERE			ID = #{id,jdbcType=INTEGER}	</update>	<!-- 基础模板 更新 Users 记录 -->	<update id="baseupdateSelective" parameterType="com.bookool.demo.model.Users" >		UPDATE TB_Users		<set>			<if test="username!=null" >				UserName = #{username,jdbcType=VARCHAR},			</if>			<if test="userlevel!=null" >				UserLevel = #{userlevel,jdbcType=TINYINT},			</if>			<if test="usernotes!=null" >				UserNotes = #{usernotes,jdbcType=VARCHAR},			</if>		</set>		WHERE			ID = #{id,jdbcType=INTEGER}	</update></mapper>

更新:

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap