一篇关于了解generatorConfig自动生成model,dao包的心路历程

来源:互联网 发布:淘宝一键复制软件 编辑:程序博客网 时间:2024/06/05 12:01
<generatorConfiguration>    <context id="testTables" ***targetRuntime="MyBatis3"***>        <commentGenerator>            <!-- 是否去除自动生成的注释 true:是 : false:否 -->            <property name="suppressAllComments" value="true" />        </commentGenerator>        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->        <!-- <jdbcConnection driverClass="com.mysql.jdbc.Driver"            connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root"            password="mysql">        </jdbcConnection> -->        <jdbcConnection driverClass="oracle.jdbc.OracleDriver"            connectionURL="jdbc:oracle:thin:@192.168.21.115:1521:orcl"             userId="user"            password="pass">        </jdbcConnection>        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和             NUMERIC 类型解析为java.math.BigDecimal -->        <javaTypeResolver>            <property name="forceBigDecimals" value="false" />        </javaTypeResolver>        <!-- targetProject:生成PO类的位置 -->        <javaModelGenerator targetPackage="com.zlf.part.model"            targetProject=".\src">            <!-- enableSubPackages:是否让schema作为包的后缀 -->            <property name="enableSubPackages" value="false" />            <!-- 从数据库返回的值被清理前后的空格 -->            <property name="trimStrings" value="true" />        </javaModelGenerator>        <!-- targetProject:mapper映射文件生成的位置 -->        <sqlMapGenerator targetPackage="com.zlf.part.dao.xml"             targetProject=".\src">            <!-- enableSubPackages:是否让schema作为包的后缀 -->            <property name="enableSubPackages" value="false" />        </sqlMapGenerator>        <!-- targetPackage:mapper接口生成的位置 -->        <javaClientGenerator type="XMLMAPPER"            targetPackage="com.zlf.part.dao"             targetProject=".\src">            <!-- enableSubPackages:是否让schema作为包的后缀 -->            <property name="enableSubPackages" value="false" />        </javaClientGenerator>        <!-- 指定数据库表 -->        <table schema="" tableName="R_PART_INFO"          enableCountByExample="false" enableUpdateByExample="false"         enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" >        <columnOverride column="ID" javaType="Long"></columnOverride>        <columnOverride column="P_ID" javaType="Long"></columnOverride>        <columnOverride column="SCORE" javaType="Double"></columnOverride>        </table>        <!-- 有些表的字段需要指定java类型         <table schema="" tableName="">            <columnOverride column="" javaType="" />        </table> -->    </context></generatorConfiguration>

generatorConfig.xml的内容


  • 最开始

我是用targetRuntime=”MyBatis3Simple”,上面斜体加粗部分,然后生成出来的xml文件出奇的简单 ,但当时刚学习也不懂就觉得好用 ,后来慢慢发现不足了


  • 后来
    变成targetRuntime=”MyBatis3” 都知道这个可以生成 pojo+example,同时也xml也多了好多东西,增删改查方法也可以通过byexample,这个就不多了 ,很少用到。

很少用到那就是多余的了
那就要考虑怎么解决 ,于是多了这个

<table schema="" tableName="R_PART_INFO"          enableCountByExample="false" enableUpdateByExample="false"         enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" >        <columnOverride column="ID" javaType="Long"></columnOverride>        <columnOverride column="P_ID" javaType="Long"></columnOverride>        <columnOverride column="SCORE" javaType="Double"></columnOverride>        </table>
<columnOverride column="SCORE" javaType="Double"></columnOverride>

这段的作用是:有时候我们数据库存放double类型 ,自动生成就会生成BigDecimal类型 ,很烦 ,这时候就用这句了 ,


  • 总结

    上面这些就是影响到我上次自动生成的问题 ,其他注意的注释都写差不多 ,我上面的配置我认为生成出来的比较舒服,上次翻来覆去的弄了好几遍,希望不再犯这个问题,

对了,这里有一份变种版 ,同事写的, 可以自动生成service controller等包,但只是有包名,空包 ,所以不说太多,链接在最下面

共勉。
2017年9月28日,马上回家

阅读全文
0 0
原创粉丝点击