MyBatis Generator如何自定义生成代码?

奥神Well 发布于 2017/05/23 14:27
阅读 3K+
收藏 0

使用SSM框架开发已经有一段时间了,在此基础上也做了一些封装。刚刚MyBatis Generator,现在对于要生成的表都是放在mybatis-generator.xml中:

<table tableName="test" delimitIdentifiers="true"
			enableCountByExample="false" enableDeleteByExample="false"
			enableSelectByExample="false" enableUpdateByExample="false"
			selectByExampleQueryId="false">
			<generatedKey column="id" sqlStatement="Mysql" />
		</table>

了解到设置tableName="*"可以生成所有表的实体类和代理文件,如果现在我新增一张表,那我就要修改tableName配置文件,能否可以在Java代码中实现这个功能,比如定一个方法generate(String tableName),生成指定test表的代码时候,直接调用generate("test"),就可以实现了。

加载中
0
奥神Well
奥神Well
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
CodeZero
CodeZero

2种方案,但是实际都是一样,只是调用的方法不同。

一样的地方就是生成generate的XML

不同的地方是你可以在程序里面调用控制台去执行generate

另外一种是引入MyBatisGenerator的包(mybatis-generator-core-XXX.jar)

然后在程序里面调用org.mybatis.generator.api.ShellRunner.main(args)方法

如果你知道org.mybatis.generator.api.ShellRunner.main具体是怎么实现的

你也可以根据它的逻辑写自己的代码

奥神Well
奥神Well
通过代码去实现配置文件的xml?请问有没有demo参考一下?
0
CodeZero
CodeZero

相当于你写好了一个XML的模板,后面你只要往上面填参数就行了

例如:我写好了一个A.xml,内容<root><data>%s</data></root>

然后我在程序里面读取,xmlStr=ReadFromFile(),xmlStr = String.Format(xmlStr,param1...paramN)

然后SaveToFile(),最后执行generate就行了

demo没有,没这样玩过,感觉没啥需要

 

奥神Well
奥神Well
好的。我这么做的目的是,由于需求的变更,会导致数据库表字段更新,每次修改配置文件比较麻烦,所以想通过代码的方式实现。
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部