maven使用Ant反向生成sqlmap
在工作的时候遇到过反向生成sql,以前采用的是generator插件,这次采用maven下Ant生成。
1.先编写一个使用Ant执行的脚本build_mybatis.xml。Ant将通过这个脚本来执行生成我们需要的sqlmap,脚本要依赖于generator的jar包,我这里采用的是mybatis-generator-core-1.3.2.jar。具体配置如下:
<project default="genfiles" basedir=".">
<property name="generated.source.dir" value="${basedir}" />
<target name="genfiles" description="Generate the files">
<taskdef name="mbgenerator" classname="org.mybatis.generator.ant.GeneratorAntTask" classpath="${basedir}/mybatis-generator-core-1.3.2.jar" />
<mbgenerator overwrite="true" configfile="generatorConfig.xml" verbose="false">
<propertyset>
<propertyref name="generated.source.dir" />
</propertyset>
</mbgenerator>
</target>
</project>
2.配置一个generatorConfig.xml文件,这里包含你数据库的相关信息以及所需要生成的VO,Dao接口和sqlMapper相关信息。具体配置如下:
<generatorConfiguration>
<classPathEntry location="ojdbc6-11.2.0.1.0.jar"/>
<context id="default" defaultModelType="flat" targetRuntime="MyBatis3">
<!-- 注释 -->
<commentGenerator>
<property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
<property name="suppressDate" value="true"/> <!-- 是否生成注释代时间戳 -->
</commentGenerator>
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="数据库连接地址" userId="用户名" password="密码"/>
<!-- 只有一个属于forceBigDecimals,默认false。 如果字段精确超过0,生成BigDecimal 如果字段精确是0,总长度10-18生成Long;如果字段精确是0, 总长5-9生成Integer; 如果字段精确是0,总长小于5生成Short; 如果forceBigDecimals为true,统一生成BigDecimal -->
<javaTypeResolver>
<!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成vo、model -->
<javaModelGenerator targetPackage="com.jetair.ndc.ancillary.domain" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成mapxml文件 -->
<sqlMapGenerator targetPackage="sqlmaps" targetProject="src/main/resources"/>
<!-- 生成mapxml对应client,也就是接口dao -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.jetair.ndc.ancillary.mapper"
targetProject="src/main/java">
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<table tableName="ANCILLARY_GROUP" domainObjectName="AncillaryGroupPO" enableCountByExample="false"
enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false">
<generatedKey column="id" sqlStatement="select SEQ_ANCILLARY_GROUP.nextval from dual"/>
</table>
</context>
</generatorConfiguration>
3.添加Ant执行文件
选择刚刚配置的build_mybatis.xml脚本。
4.选择后如图所示,为一个可执行脚本,点击运行即可生成。
5.生成结果如图:
加粗样式