使用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"),就可以实现了。
2种方案,但是实际都是一样,只是调用的方法不同。
一样的地方就是生成generate的XML
不同的地方是你可以在程序里面调用控制台去执行generate
另外一种是引入MyBatisGenerator的包(mybatis-generator-core-XXX.jar)
然后在程序里面调用org.mybatis.generator.api.ShellRunner.main(args)方法
如果你知道org.mybatis.generator.api.ShellRunner.main具体是怎么实现的
你也可以根据它的逻辑写自己的代码
相当于你写好了一个XML的模板,后面你只要往上面填参数就行了
例如:我写好了一个A.xml,内容<root><data>%s</data></root>
然后我在程序里面读取,xmlStr=ReadFromFile(),xmlStr = String.Format(xmlStr,param1...paramN)
然后SaveToFile(),最后执行generate就行了
demo没有,没这样玩过,感觉没啥需要