mybatis-generator 生成器

本文记录了如何使用mybatis-generator生成mapping文件的过程,包括在Eclipse中导入插件,配置generatorConfig.xml文件,以及在生成的Model中添加数据库注解的解决方法。同时提到了数据库连接编码、Eclipse配置和解决乱码问题的注意事项,并提供了相关参考资料链接。

*********************************11.7更新线********************************

今天有空,分页的资料也找到了。详细情况:http://blog.youkuaiyun.com/aking21alinjuju/article/details/9357893






今天尝试了利用 mybatis-generator 生成mapping文件的插件,记录一下过程。

1.首先下载相对应的jar包,“MyBatis_Generator_1.3.1”。解压并讲“features“”plugins”包导入到eclipse主目录位置。

2启动eclipse ,新建Java项目即可,右键项目   new---other---mybatis generator configuration file ,点击新建“generatorConfig.xml”

3.配置XML文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration >
  <context id="context1" >
  
  	<!--数据库链接地址账号密码-->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8" userId="root" password="root" />
    
<span style="white-space:pre">	</span><!--<span style="font-family: Arial, Helvetica, sans-serif;">targetProject 是项目名字</span><span style="font-family: Arial, Helvetica, sans-serif;">--></span>
    <!--生成Model类存放位置-->
    <javaModelGenerator targetPackage="com.model" targetProject="mybatis-generator" />
    
    <!--生成映射文件存放位置-->
    <sqlMapGenerator targetPackage="com.mapping" targetProject="mybatis-generator" ></sqlMapGenerator>
    
  	<!--生成Dao类存放位置--> 
    <javaClientGenerator targetPackage="com.dao" targetProject="mybatis-generator" type="XMLMAPPER" />
 	
 	<!--生成对应表及类名-->
 	<!-- tableName和domainObjectName为必选项,分别代表数据库表名和生成的实力类名,其余的可以自定义去选择(一般情况下均为false)。 -->
 	<table tableName="union_platform" domainObjectName="model" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>

  </context>
</generatorConfiguration>
 这个配置文件只是基本配置,更多说明可以百度。

4.新建lib目录,并导入jar包

mysql-connector-java-5.0.8-bin.jar
org.mybatis.generator_1.3.1.jar
org.mybatis.generator.core_1.3.1.jar
5.右键XML,点击 generater mybatis artifacts

6完成。



***************************************更新时间:8月15日****************************************


以上的方法,不足之处,就是没有在生成的 Model 加上数据库的注解。造成开发时,不小的麻烦。因为,在周日耐心看了看详细的配置XML网页,终于能加入数据库的中文注解了(前提是,在数据库表中有字段注解)。

1 在项目空白处,新建一个MyCommentGenerator.class

package test;

import org.mybatis.generator.api.CommentGenerator;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.dom.java.Field;
import org.mybatis.generator.internal.DefaultCommentGenerator;


public class MyCommentGenerator  extends DefaultCommentGenerator implements CommentGenerator {
	@Override
	public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
	    if (introspectedColumn.getRemarks() != null && !introspectedColumn.getRemarks().equals("")) {
	        field.addJavaDocLine("/**");
	        field.addJavaDocLine(" * " + introspectedColumn.getRemarks());
	        addJavadocTag(field, false);
	        field.addJavaDocLine(" */");
	    }
	}
}
同时,在XML文件中加入这个配置,即可。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >

<generatorConfiguration >

  <context id="context1"  defaultModelType="flat">
  
	<commentGenerator  type="test.MyCommentGenerator"> //这里就是刚才新建的类的引入
		<property name="suppressDate" value="true"/>
    	<property name="suppressAllComments" value="true" />
     </commentGenerator>
     
     <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.1.211:3306/union_lwl_com?useUnicode=true&characterEncoding=UTF-8" userId="union_lwl" password="union_lwl@com" />
    

    <javaModelGenerator targetPackage="com.model" targetProject="mybatis-generator" />
    

    <sqlMapGenerator targetPackage="com.mapping" targetProject="mybatis-generator" ></sqlMapGenerator>
    
  
    <javaClientGenerator targetPackage="com.dao" targetProject="mybatis-generator" type="XMLMAPPER" />
 	
    <table tableName="%">  <property name="useActualColumnNames" value="true"/></table>

  </context>
</generatorConfiguration>

保存后,再次运行就OK了。


PS:注解中文乱码问题

1 项目的编码设置为UTF_8

2 数据库,和从数据库取值编码设置UTF-8   ?useUnicode=true&amp;characterEncoding=UTF-8

3Eclipse的配置问题,在根目录下 ini 文件最下添加一行  

-Dfile.encoding=UTF-8

另外附上我参考的网页,感觉写的很棒

Mybatis Generator最完整配置详解》http://www.jianshu.com/p/e09d2370b796

java 乱码问题-Dfile.encoding=UTF-8》http://blog.sina.com.cn/s/blog_4ce8808d0101d0i1.html

MyBatis Generator配置文件table元素的属性http://openwares.net/database/mybatis_generator_table_useactualcolumnnames.html

MyBatis Geneator 详解》http://my.oschina.net/flags/blog/359419

一. 生成器模板路径可以引用相关变量 如 ${basepackage}/${className}.java,根据该变量生成输出文件 二. 自动搜索某个目录所有模板文件,无需配置 三.代码生成器模板可以引用的相关变量 1. g.generateByTable("table_name") 方法可以引用的变量 table : cn.org.rapid_framework.generator.provider.db.table.model.Table 2. g.generateByClass(UserInfo.class) 方法可以引用的变量 clazz : cn.org.rapid_framework.generator.provider.java.model.JavaClass 3. g.generateBySql("select * from user_info where pwd=:pwd") 方法可以引用的变量 sql : cn.org.rapid_framework.generator.provider.db.sql.model.Sql 4.公共变量 env : 系统环境变量 System.getProperties() : 直接引用,没有前缀 generator.properties 文件中的所有属性,直接引用,没有前缀 gg : 模板控制变量, cn.org.rapid_framework.generator.GeneratorControl 四.每个模板有gg变量可以控制自身的自定义配置 (每一个模板都会创建新的gg实例) 如是否生成,是否覆盖目标文件,甚至是生成其它文件 ${gg.setIgnoreOutput(true)}: 如果为true则不生成输出文件 ${gg.generateFile(outputFile,content)} 在模板中生成其它文件 ${gg.getProperty(key,defaultValue)}: 得到proproty,如果没有找到,则返回默认值 ${gg.getInputProperty(key)}: 会弹出一个输入框,提示用户输入值 具体参考: http://code.google.com/p/rapid-framework/wiki/rapid_generator_gg 五.支持生成(gen)及删除操作(del),即生成的代码也可以很方便的删除 六. 自动删除模板扩展名: .ftl,.vm 举例: 如你有一个模板 SqlMap.xml.ftl 将变为 SqlMap.xml 所以你要生成ftl扩展名的文件,应该将文件名从 list.ftl => list.ftl.ftl 七. 模板自动include所有父目录的:macro.include文件,可以存放公共的macro 示例: 如你的模板为 com/project/UserDao.java, 将自动include: com/project/macro.include, com/macro.include, macro.include 八. generator.xml (或者generator.properties)配置文件 1.类似ant可以变量引用,引用环境变量使用${env.JAVA_HOME}, 引用System.getProperties()直接引用 2.自动替换generator.properties中的句号(.)为反斜杠,设置key为key+"_dir"后缀 示例: pkg=com.company => pkg_dir=com/company 九.自动拷贝二进制文件至输出目录 如模板目录下的 zip,rar,doc文件将会自动拷贝至输出目录,不会破坏文件格式 (通过扩展名自动识别) 十. 数据库表配置,用于自定义生成器模板引用的table变量,配置文件必须存放在classpath: generator_config/table/table_name.xml (该文件生成器可以生成,自己再自定义修改)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值