mysql generator 的缺点_MyBatis Generator尝试与踩坑

一直觉得使用MyBatis时手写Mapper以及xml很费时间,了解到MyBatis Generator这个东西,决定尝试一下效果。按照官方教程以及各种搜到的教程,如MyBatis Generator生成代码的几种方式,一步步完成配置(首先尝试的是Maven plugin的方式),确实挺简单,完成配置后运行maven-project就成功地生成了代码。

移除Example方法

但是发现生成的代码中有个Example,这是个什么鬼,后来在官方文档中看到原来是用于自定义sql的,官方文档有比较详细使用示例。但是!使用起来好麻烦,我不需要!可以这样配置:

enableCountByExample="false" enableUpdateByExample="false"

enableDeleteByExample="false" enableSelectByExample="false"

selectByExampleQueryId="false" >

在配置文件中table标签添加各种Example的false即可不生成相应的方法。顺便说下tableName指定为%表示生成所有表,很好用,不用一个个表配置了。

下一个问题是没有自己常用的方法啊,例如查list什么的,业务中很常见啊!!只能自己定义方法了吧。

自定义方法

我找到了这篇文章 Mybatis Generator自定义扩展,它是通过Generator Plugin的方式添加新的方法。我原样copy,运行maven-project——报错Cannot instantiate object of type CustomPlugin。见了鬼了,明明有这个类怎么找不到。后来根据经验猜测maven plugin运行的环境是独立的环境,毕竟pom中添加maven的时候还单独添加了dependencies,也就是说我们自己写的类根本没有在mybatis-generator-maven-plugin的运行环境中。

解决方法之一:mybatis插件--(1)--mybatis generator自定义插件或者扩展报Cannot instantiate object of type XXX 里面提到几个方法,但思路基本是将自己写的Generator Plugin添加到环境中。

个人感觉太过麻烦,改换Java的方式吧!

private static void generator() throws Exception {

File configFile = new ClassPathResource("generatorConfig.xml").getFile();

List warnings = new ArrayList();

ConfigurationParser cp = new ConfigurationParser(warnings);

Configuration config = cp.parseConfiguration(configFile);

DefaultShellCallback callback = new DefaultShellCallback(true);

MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);

myBatisGenerator.generate(null);

System.out.println("代码生成完毕>>>>>>>>>>>>");

}

运行成功,结果毛都没有,我的代码那?生成在哪?

又是一顿搜索,原来是targetProject=".\src"会找不到路径 ,

改为:targetProject="/Users/xxx/xxx/xxx/xxx/mybatis/config"全路径就可以了。

出现WithBLOBs的Bean

如果你的table中的字段声明的类型是text或者blob时,此时会自动生一个WithBLOBs的Bean的来处理这种字段。如果不想改表的声明,那么也可以这样做:MyBatis逆向工程自动生成的xml配置文件片段出现*WithBLOBsjava代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值