`
matychen
  • 浏览: 172679 次
  • 性别: Icon_minigender_1
  • 来自: 武汉外来务工人员
社区版块
存档分类
最新评论

mybatis-generator 修改版

阅读更多
mybatis-generator 修改版

mybatis-generator.7z为git的详细修改记录,可用git进行查看。

mybatis-generator-test.7z为测试,只测试了生成的mysql和oracle的一些用法,其他的并未测试。

1、更新 SerializablePlugin插件变量serialVersionUID的位置 topLevelClass.addField(0,field);
2、增加了数据库的返回注释,去掉了不必要的一些注释
3、注释所有的接口方法
4、为ibatis2增加了个 给dao增加注解的插件
5、增加公共查询条件类 ibatis 和mybatis
6、增加了service的生成插件
7、增加pojo类注释-》table的注释


增加了几个插件类,可在package org.mybatis.generator.plugins包下面找到。

package org.mybatis.generator.update.update.txt为更新的记录


[b][color=red]
生成相关代码只需配置下对应的xml,在config/grid.xml,以及mysql.xml和oracle.xml里面是配置例子。
然后运行config包下面的_Ibator_Run_Test 即可,里面
public static void main(String[] args) {
		_Ibator_Run_Test test = new _Ibator_Run_Test();
		test.main1("grid.xml");
//		test.main1("mysql.xml");
//		test.main1("oracle.xml");
	}

grid.xml是对应的配置文件名称。
[/color][/b]

增加了2个maven的工程,分别为修改后的mybatis-generator 1.3.1版本和test文件。

2011-08-30 更新
8、默认不加入jdbcType属性,如:#{condition.myaccount,jdbcType=VARCHAR}或者 #condition.myaccount:VARCHAR#
	如果需要使用,在<context 的下面配置
	<property name="jdbcType" value="true" />即可
	如:<context id="Ibatis2Java5" targetRuntime="Ibatis2Java5">
		<property name="jdbcType" value="true" />



更新:
2011-09-13:增加了SQL Server获取数据库注释,字段注释的方法,只测试过2000版本。其他版本请自己测试。
2011-12-08:发现里面的方法只需要这样的参数就可以了。在xml里面省了一个<sql id="Example_Where_Clause" > ,推荐使用这个版本的。
/**
	 * 根据条件更新属性不为空的记录
	 */
	int updateByExampleSelective(@Param("record") BaseModules record, @Param("condition") Map<String, Object> condition);

	/**
	 * 根据条件更新记录
	 */
	int updateByExample(@Param("record") BaseModules record, @Param("condition") Map<String, Object> condition);


分享到:
评论
15 楼 caixu23 2016-03-28  
发现一个小问题,mysql表字段的注释生成正常,但是表本身注释不能读取,建议ConnectionFactory.getConnection增加props.setProperty("useInformationSchema", "true");//mysql需要个设置



楼主不错,我找了很久终于找到一个能用的,不知道有没有1.3.2的?
14 楼 blueman2012 2014-08-26  
谢谢分享,我使用时,遇到了一个文件。
执行了_Ibator_Run_Test里面的main方法了,表也找到了,就是不见生成文件,请问怎么回事了。下面是日志

16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Retrieving column information for table "pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "id", data type 4, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "order_sn", data type 12, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "old_order_sn", data type 12, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "vendor_id", data type 4, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "vendor_name", data type 12, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "brand_name", data type 12, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "add_time", data type 93, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "vis_create_time", data type 93, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "is_export", data type -6, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "export_time", data type 93, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "delivery_time", data type 93, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "monitor_period", data type -6, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "delivery_state", data type -6, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "delivery_duration", data type 4, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "export_state", data type -6, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "export_duration", data type 4, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "vis_create_state", data type -6, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "vis_create_duration", data type 4, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "create_time", data type 93, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "update_time", data type 93, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     Found column "is_deleted", data type -6, in table "ofc_order_monitor..pop_delay_order_info"
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     表名为:pop_delay_order_info
16:27:24 DEBUG       org.mybatis.generator.internal.db.DatabaseIntrospector debug                     表的注释为:
16:27:24 INFO           org.mybatis.generator.plugins.MybatisCriteriaPlugin sqlMapDocumentGenerated   15
13 楼 yl23250 2014-02-28  
说错了。。属性我改成sizes相关代码都改成sizes  就没错了
<if test="condition.sizes != null " >
         and SIZES = #{condition.sizes }
      </if

condition是一个Map<String, Object>   为啥  size就无法识别呢
System.out.println(cri.getCondition().get("size"));我也答应了。。出来是null




yl23250 写道
yl23250 写道
哥 我发现问题了。。绝对是BUG
Pojo类{
private int id;
private String size;
.....


test类{
....省略一些
方法如下
public void getList(){
Criteria cri = new Criteria();
List<Pojo> tagFile = stFileService.selectByExample(cri);
for (Pojo pojo: tagFile) {
			System.out.println("-----------------------"
					+ pojo.getName());
		}
}

//这里我没有给size属性赋值。。也就是null
}

mapper.xml里面
where条件
 <sql id="Example_Where_Clause" >
    <trim prefix="where" prefixOverrides="and|or" >
.....
       <if test="condition.size != null " >
         and SIZE = #{condition.size }
      </if>
</trim>
  </sql>

对吧。。。。这里都是配好的
结果一junit
sql语句
select *from table where size =?
parameter : null
totalcount:0

别的pojo属性都是OK的
我也换过一个类,但是没有size属性,完全OK
12 楼 yl23250 2014-02-28  
我也换成sizes试过,还是有。。。








yl23250 写道
yl23250 写道
哥 我发现问题了。。绝对是BUG
Pojo类{
private int id;
private String size;
.....


test类{
....省略一些
方法如下
public void getList(){
Criteria cri = new Criteria();
List<Pojo> tagFile = stFileService.selectByExample(cri);
for (Pojo pojo: tagFile) {
			System.out.println("-----------------------"
					+ pojo.getName());
		}
}

//这里我没有给size属性赋值。。也就是null
}

mapper.xml里面
where条件
 <sql id="Example_Where_Clause" >
    <trim prefix="where" prefixOverrides="and|or" >
.....
       <if test="condition.size != null " >
         and SIZE = #{condition.size }
      </if>
</trim>
  </sql>

对吧。。。。这里都是配好的
结果一junit
sql语句
select *from table where size =?
parameter : null
totalcount:0

别的pojo属性都是OK的
我也换过一个类,但是没有size属性,完全OK

11 楼 yl23250 2014-02-28  
yl23250 写道
哥 我发现问题了。。绝对是BUG
Pojo类{
private int id;
private String size;
.....


test类{
....省略一些
方法如下
public void getList(){
Criteria cri = new Criteria();
List<Pojo> tagFile = stFileService.selectByExample(cri);
for (Pojo pojo: tagFile) {
			System.out.println("-----------------------"
					+ pojo.getName());
		}
}

//这里我没有给size属性赋值。。也就是null
}

mapper.xml里面
where条件
 <sql id="Example_Where_Clause" >
    <trim prefix="where" prefixOverrides="and|or" >
.....
       <if test="condition.size != null " >
         and SIZE = #{condition.size }
      </if>
</trim>
  </sql>

对吧。。。。这里都是配好的
结果一junit
sql语句
select *from table where size =?
parameter : null
totalcount:0

别的pojo属性都是OK的
我也换过一个类,但是没有size属性,完全OK
10 楼 yl23250 2014-02-28  
哥 我发现问题了。。绝对是BUG
Pojo类{
private int id;
private String size;
.....


test类{
....省略一些
方法如下
public void getList(){
Criteria cri = new Criteria();
List<Pojo> tagFile = stFileService.selectByExample(cri);
for (Pojo pojo: tagFile) {
			System.out.println("-----------------------"
					+ pojo.getName());
		}
}

//这里我没有给size属性赋值。。也就是null
}

mapper.xml里面
where条件
 <sql id="Example_Where_Clause" >
    <trim prefix="where" prefixOverrides="and|or" >
.....
       <if test="condition.size != null " >
         and SIZES = #{condition.status}
      </if>
</trim>
  </sql>

对吧。。。。这里都是配好的
结果一junit
sql语句
select *from table where size =?
parameter : null
totalcount:0

别的pojo属性都是OK的
我也换过一个类,但是没有size属性,完全OK
9 楼 poeeva168 2013-03-06  
蛮好用的,谢了
8 楼 lemon0 2013-02-27  
楼主你好,非常感谢你的贡献,不知道你能不能在业余时间写几篇关于如何去修改源码文章,我想定制自己想生成的代码,但是我根本就没头绪,不知道从哪个地方下手。非常感谢。
7 楼 matychen 2012-04-20  
levin_china 写道
不会用。不能做成一个jar包的形式吗?

可以的,你自己做一个便是了,源码不是更好么。
6 楼 levin_china 2012-04-19  
不会用。不能做成一个jar包的形式吗?
5 楼 stand_zzy 2012-03-02  
好东西!!!
4 楼 wxinw 2012-02-02  
能不能留个QQ啊,使用时遇到问题了,28、29版本的使用时报错了,生成不了文件。好像grid.xml找不到
3 楼 zb7503 2011-08-09  
好的,谢了!
2 楼 matychen 2011-08-04  
zb7503 写道
不知道怎么把这个 嵌入到 eclipse里面去。
望指教一下,谢谢!


个人喜好直接用这个生成相关代码。运行config包下面的_Ibator_Run_Test这个类即可,

test.main1("grid.xml");这个是查找grid.xml配置文件,grid.xml里面配置的是相关的代码生成方式。
1 楼 zb7503 2011-08-04  
不知道怎么把这个 嵌入到 eclipse里面去。
望指教一下,谢谢!

相关推荐

    springboot+mybatis-generator.rar

    实际使用时,根据自己的项目需求对配置文件进行适当修改,就能轻松地为自己的SpringBoot项目添加MyBatis-Generator支持。 总之,SpringBoot与MyBatis-Generator的结合是现代Java Web开发中的一种高效模式,它简化了...

    mybatis-generator-core-1.3.2注释修改

    总的来说,通过修改MyBatis Generator的源码,我们可以使生成的Java代码更加符合我们的需求,提升代码的可读性和维护性。这个过程涉及对MBG内部机制的理解,以及一定的编程技巧,但是一旦设置好,将为后续开发带来很...

    mybatis-generator-1.3.5

    `mybatis-generator-1.3.5`的修改版实现了这个特性,它可以在生成的Model类中添加中文注释,使得团队成员在查看和维护代码时能更快地理解每个字段的含义。 3. **MBG的配置**: MBG的运行依赖于一个XML配置文件,...

    mybatis-generator-core-1.3.2.jar 

    Mybatis-Generator是一个强大的工具,它能够帮助Java开发者自动生成Mybatis的相关代码,极大地提高了开发效率。这个"mybatis-generator-core-1.3.2.jar"文件是Mybatis Generator的核心库,版本为1.3.2,它包含了执行...

    mybatis-generator-core-1.3.2.zip

    `mybatis-generator-core-1.3.2.zip` 文件是MyBatis Generator的一个版本,即1.3.2版,它包含了实现这一功能的所有必要组件。这个版本的MBG支持MyBatis框架的逆向工程,通过解析数据库中的表结构,自动创建与之对应...

    mybatis-generator-gui图形界面运行程序

    Mybatis Generator GUI是一款基于Mybatis Generator的图形化界面工具,它极大地简化了代码生成的过程,让用户无需手动编写XML配置文件,就能自动生成Mybatis的Mapper接口、Mapper XML文件、实体类以及DAO层代码。...

    mybatis-generator1.3.5-修改版

    【标题】"mybatis-generator1.3.5-修改版"是基于MyBatis Generator官方版本1.3.5的一个定制化实现,主要是为了优化和扩展其功能。这个修改版包含了一些预设的配置,使得用户在使用时可以更加便捷地生成MyBatis相关的...

    mybatis-generator-core

    使用`mybatis-generator-core`时,首先需要根据项目需求修改`generatorConfig.xml`,然后通过命令行或者集成到构建工具(如Maven或Gradle)中执行MBG,它会自动读取配置并生成相应的代码。这样,你就可以得到与...

    mybatis-generator-1.3.6.jar

    MyBatis Generator(MBG)是一个强大的工具,用于自动生成MyBatis的SQL映射文件、Java模型类和DAO接口。在Java开发中,MyBatis Generator能够显著提高开发效率,减少手动编写这些重复性代码的工作量。mybatis-...

    mybatis-generator-core.jar包

    Mybatis Generator Core是一款强大的自动化工具,它可以帮助开发者自动生成Mybatis相关的Java代码,包括实体类、Mapper接口和XML配置文件,极大地提高了开发效率。在Java开发中,Mybatis作为一款轻量级的持久层框架...

    mybatis-generator-core-1.3.2

    Mybatis Generator Core 1.3.2 是一个强大的工具,用于自动生成Mybatis的映射文件、模型类和DAO接口,极大地提高了开发效率。这个版本包括了Mybatis Generator的1.3.2版本的jar包,它是一个Java库,能够自动化生成...

Global site tag (gtag.js) - Google Analytics