使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

大鹏一日同风起,扶摇直上九万里。这篇文章主要讲述使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)相关的知识,希望能为你提供帮助。
出处:http://www.cnblogs.com/lichenwei/p/4145696.html
Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。
 
1、相关文件
关于Mybatis-Generator的下载可以到这个地址:https://github.com/mybatis/generator/releases

由于我使用的是mysql数据库,这里需要在准备一个连接mysql数据库的驱动jar包
以下是相关文件截图:

使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片

 
和Hibernate逆向生成一样,这里也需要一个配置文件:
generatorConfig.xml
使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
1 < ?xml version="1.0" encoding="UTF-8"?> 2 < !DOCTYPE generatorConfiguration 3PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 4"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 5 < generatorConfiguration> 6< !--数据库驱动--> 7< classPathEntrylocation="mysql-connector-java-5.0.8-bin.jar"/> 8< context id="DB2Tables"targetRuntime="MyBatis3"> 9< commentGenerator> 10< property name="suppressDate" value="https://www.songbingjia.com/android/true"/> 11< property name="suppressAllComments" value="https://www.songbingjia.com/android/true"/> 12< /commentGenerator> 13< !--数据库链接地址账号密码--> 14< jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/mymessages" userId="root" password="root"> 15< /jdbcConnection> 16< javaTypeResolver> 17< property name="forceBigDecimals" value="https://www.songbingjia.com/android/false"/> 18< /javaTypeResolver> 19< !--生成Model类存放位置--> 20< javaModelGenerator targetPackage="lcw.model" targetProject="src"> 21< property name="enableSubPackages" value="https://www.songbingjia.com/android/true"/> 22< property name="trimStrings" value="https://www.songbingjia.com/android/true"/> 23< /javaModelGenerator> 24< !--生成映射文件存放位置--> 25< sqlMapGenerator targetPackage="lcw.mapping" targetProject="src"> 26< property name="enableSubPackages" value="https://www.songbingjia.com/android/true"/> 27< /sqlMapGenerator> 28< !--生成Dao类存放位置--> 29< javaClientGenerator type="XMLMAPPER" targetPackage="lcw.dao" targetProject="src"> 30< property name="enableSubPackages" value="https://www.songbingjia.com/android/true"/> 31< /javaClientGenerator> 32< !--生成对应表及类名--> 33< table tableName="message" domainObjectName="Messgae" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> < /table> 34< /context> 35 < /generatorConfiguration>

使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
需要修改文件配置的地方我都已经把注释标注出来了,这里的相关路径(如数据库驱动包,生成对应的相关文件位置可以自定义)不能带有中文。
上面配置文件中的:
< table tableName="message" domainObjectName="Messgae" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> < /table>

tableName和domainObjectName为必选项,分别代表数据库表名和生成的实力类名,其余的可以自定义去选择(一般情况下均为false)。
 
生成语句文件:
java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite

 
 
2、使用方法
在该目录按住Shift键,右键鼠标选择"在此处打开命令窗口",复制粘贴生成语句的文件代码即可。
 
看下效果图:
使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片

使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片

 
 
生成相关代码:
Message.java
使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
1 package lcw.model; 2 3 public class Messgae { 4private Integer id; 5 6private String title; 7 8private String describe; 9 10private String content; 11 12public Integer getId() { 13return id; 14} 15 16public void setId(Integer id) { 17this.id = id; 18} 19 20public String getTitle() { 21return title; 22} 23 24public void setTitle(String title) { 25this.title = title == null ? null : title.trim(); 26} 27 28public String getDescribe() { 29return describe; 30} 31 32public void setDescribe(String describe) { 33this.describe = describe == null ? null : describe.trim(); 34} 35 36public String getContent() { 37return content; 38} 39 40public void setContent(String content) { 41this.content = content == null ? null : content.trim(); 42} 43 }

使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
MessgaeMapper.xml
使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
1 < ?xml version="1.0" encoding="UTF-8" ?> 2 < !DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > 3 < mapper namespace="lcw.dao.MessgaeMapper" > 4< resultMap id="BaseResultMap" type="lcw.model.Messgae" > 5< id column="id" property="id" jdbcType="INTEGER" /> 6< result column="title" property="title" jdbcType="VARCHAR" /> 7< result column="describe" property="describe" jdbcType="VARCHAR" /> 8< result column="content" property="content" jdbcType="VARCHAR" /> 9< /resultMap> 10< sql id="Base_Column_List" > 11id, title, describe, content 12< /sql> 13< select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" > 14select 15< include refid="Base_Column_List" /> 16from message 17where id = #{id,jdbcType=INTEGER} 18< /select> 19< delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" > 20delete from message 21where id = #{id,jdbcType=INTEGER} 22< /delete> 23< insert id="insert" parameterType="lcw.model.Messgae" > 24insert into message (id, title, describe, 25content) 26values (#{id,jdbcType=INTEGER}, #{title,jdbcType=VARCHAR}, #{describe,jdbcType=VARCHAR}, 27#{content,jdbcType=VARCHAR}) 28< /insert> 29< insert id="insertSelective" parameterType="lcw.model.Messgae" > 30insert into message 31< trim prefix="(" suffix=")" suffixOverrides="," > 32< if test="id != null" > 33id, 34< /if> 35< if test="title != null" > 36title, 37< /if> 38< if test="describe != null" > 39describe, 40< /if> 41< if test="content != null" > 42content, 43< /if> 44< /trim> 45< trim prefix="values (" suffix=")" suffixOverrides="," > 46< if test="id != null" > 47#{id,jdbcType=INTEGER}, 48< /if> 49< if test="title != null" > 50#{title,jdbcType=VARCHAR}, 51< /if> 52< if test="describe != null" > 53#{describe,jdbcType=VARCHAR}, 54< /if> 55< if test="content != null" > 56#{content,jdbcType=VARCHAR}, 57< /if> 58< /trim> 59< /insert> 60< update id="updateByPrimaryKeySelective" parameterType="lcw.model.Messgae" > 61update message 62< set > 63< if test="title != null" > 64title = #{title,jdbcType=VARCHAR}, 65< /if> 66< if test="describe != null" > 67describe = #{describe,jdbcType=VARCHAR}, 68< /if> 69< if test="content != null" > 70content = #{content,jdbcType=VARCHAR}, 71< /if> 72< /set> 73where id = #{id,jdbcType=INTEGER} 74< /update> 75< update id="updateByPrimaryKey" parameterType="lcw.model.Messgae" > 76update message 77set title = #{title,jdbcType=VARCHAR}, 78describe = #{describe,jdbcType=VARCHAR}, 79content = #{content,jdbcType=VARCHAR} 80where id = #{id,jdbcType=INTEGER} 81< /update> 82 < /mapper>

使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
【使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)】MessgaeMapper.java
使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
使用Mybatis-Generator自动生成DaoModelMapping相关文件(转)

文章图片
1 package lcw.dao; 2 3 import lcw.model.Messgae; 4 5 public interface MessgaeMapper { 6int deleteByPrimaryKey(Integer id); 7 8int insert(Messgae record); 9 10int insertSelective(Messgae record); 11 12Messgae selectByPrimaryKey(Integer id); 13 14int updateByPrimaryKeySelective(Messgae record); 15 16int updateByPrimaryKey(Messgae record); 17 }


    推荐阅读