在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:MyBatis3AutoCode开源软件地址:https://gitee.com/tommygun/MyBatis3AutoCode开源软件介绍:MyBatis3AutoCode (For MySQL)MyBatis3的代码自动生成工具,简单实用,java,for MySQL。优点:
使用方法1、生成数据库脚本
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为表名(不加前缀)。 注意
生成的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-21、表前缀现在可以为空了;2、修改了获取字段的正则表达式的bug。 17-2-151、可指定生成某一张表的代码。 java -jar MyBatis3AutoCode.jar config.xml TableName 其中:TableName为表名(不加前缀)。 17-2-231、修改了bug。 17-3-41、修改了错误的单词。 17-4-11、修改了时间类型的错误。 17-4-121、修改了Bug。 17-4-161、修改了数据类型Bug。 17-5-51、修改了检测空的Bug。 17-6-101、所有字段统一了大小写。 18-1-211、修改了小Bug。2、增加了 For PostgreSQL 的版本,详见:PgBatis3AutoCode |
请发表评论