设为首页 收藏本站
查看: 1095|回复: 0

[经验分享] mybatis自动生成代码(maven工程)集成spring

[复制链接]

尚未签到

发表于 2016-11-27 07:15:13 | 显示全部楼层 |阅读模式
上一个公司的人离职了,接手了他负责的东西,由于工作需要,要重新做,他之前用的是mybatis自动生成代码,现在数据库做了调整,又不想改数据库的框架,决定自己来一次,
以前学习的时候只是在myeclipse中用过自动生成的操作,现在是在eclipse中的maven工程里,于是研究了一下相关的东西。

知识还是边学习边实践比较好啊,天天自己学习,看文字还是不行滴!这是最近以来的深刻体会。

一开始找了ibatis的abator的生成器,很古老了,就不说了
然后找了mybatis的generator,也还行。
最后决定用与spring的集成版,将学习经验分享给大家。

首先在maven工程的pom.xml中添加mybatis的自动生成器的插件依赖,如下:

<!-- 利用mybatis生成代码 -->
    <plugin>  
                    <groupId>org.mybatis.generator</groupId>  
                    <artifactId>mybatis-generator-maven-plugin</artifactId>  
                    <version>1.3.1</version>  
                    <configuration>  
                        <verbose>true</verbose>  
                        <overwrite>true</overwrite>  
                    </configuration>  
                </plugin>


然后编写一个默认需要的文件,名字为generatorConfig.xml

这里给大家列出相关的解释吧:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!--驱动包的绝对路径-->   
<classPathEntry location="E:\mysqljar\mysql-connector-java-5.1.22.jar" />


  <context id="MYSQlTable" targetRuntime="MyBatis3">

<!--关于数据库的相关配置,相信一般的同学都能看懂就不多说 -->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://127.0.0.1:3306/smgp_db"
        userId="root"
        password="root">
    </jdbcConnection>

<!--默认是false 是否强制使用BigDecimal来表示所有的十进制和数值字段。 -->

    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>


<!-- targetProject:自动生成代码的位置 -->
<!--targetPackage,是生成文件所在的包路径-->  
<!--targetProject,是相对于本xml配置文件的相对路径,是targetPackage包路径的父级目录。-->  

    <javaModelGenerator targetPackage="cn.thinkjoy.testa.entity" targetProject="generator/java/">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
      <property name="enableSubPackages" value="true" />
    <!-- 从数据库返回的值被清理前后的空格  -->   
      <property name="trimStrings" value="true" />
    </javaModelGenerator>
<!-- mapper文件-->

    <sqlMapGenerator targetPackage="mapper"  targetProject="generator/resources/">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>
<!-- ANNOTATEDMAPPER,MIXEDMAPPER, -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="cn.thinkjoy.testa.dao"  targetProject="generator/java/">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>
<!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 -->
<table tableName="smgp_account" domainObjectName="Account" >
      <property name="useActualColumnNames" value="true"/>
    </table>
   
    <table tableName="business_type" domainObjectName="Business" >
      <property name="useActualColumnNames" value="true"/>
      <generatedKey column="ID" sqlStatement="MYSQL" identity="true" />
    </table>
   
    <table tableName="smgp_batch" domainObjectName="Batch" >
      <property name="useActualColumnNames" value="true"/>
      <generatedKey column="id" sqlStatement="MySql" identity="true" />
      <columnOverride column="mode" javaType="Integer" />
      <columnOverride column="is_report" javaType="Integer" />
      <columnOverride column="handle" javaType="Integer" />
      
    </table>
    <table tableName="smgp_batch_history" domainObjectName="BatchHistory" >
      <property name="useActualColumnNames" value="true"/>
    </table>
   
    <table tableName="smgp_deliver" domainObjectName="Deliver" >
      <property name="useActualColumnNames" value="true"/>
    </table>
    <table tableName="smgp_deliver_history" domainObjectName="DeliverHistory" >
      <property name="useActualColumnNames" value="true"/>
    </table>
   
    <table tableName="smgp_prepare" domainObjectName="Prepare" >
      <property name="useActualColumnNames" value="true"/>
      <generatedKey column="id" sqlStatement="MySql" identity="true" />
      <columnOverride column="is_report" javaType="Integer" />
      <columnOverride column="handle" javaType="Integer" />
      <columnOverride column="ptype" javaType="Integer" />
    </table>
   
    <table tableName="smgp_report" domainObjectName="Report" >
      <property name="useActualColumnNames" value="true"/>
    </table>
    <table tableName="smgp_report_history" domainObjectName="ReportHistory" >
      <property name="useActualColumnNames" value="true"/>
    </table>
   
    <table tableName="smgp_report_info" domainObjectName="ReportInfo" >
      <property name="useActualColumnNames" value="true"/>
      <columnOverride column="handle" javaType="Integer" />
      <columnOverride column="ptype" javaType="Integer" />
    </table>
    <table tableName="smgp_report_info_history" domainObjectName="ReportInfoHistory" >
      <property name="useActualColumnNames" value="true"/>
      <columnOverride column="handle" javaType="Integer" />
      <columnOverride column="ptype" javaType="Integer" />
    </table>
   
    <table tableName="smgp_send" domainObjectName="Send" >
      <property name="useActualColumnNames" value="true"/>
    </table>
    <table tableName="smgp_send_noreport" domainObjectName="SendNoReport" >
      <property name="useActualColumnNames" value="true"/>
    </table>
    <table tableName="smgp_permit" domainObjectName="Permit" >
      <property name="useActualColumnNames" value="true"/>
      <generatedKey column="id" sqlStatement="MySql" identity="true" />
    </table>
    <table tableName="smgp_phones" domainObjectName="Phones" >
      <property name="useActualColumnNames" value="true"/>
      <generatedKey column="id" sqlStatement="MySql" identity="true" />
      <columnOverride column="pcount" javaType="Integer" />
      <columnOverride column="ptype" javaType="Integer" />
      <columnOverride column="pcodes" javaType="String" />
      <columnOverride column="phones" javaType="String" />
    </table>

  </context>
</generatorConfiguration>

注意:这个generatorConfig.xml默认的位置是放在src/main/resources下面的。



接下来:用命令生成相应的文件放在相应的目录,提前建立好生成目录放的位置,比如我生成的代码会放到generator的下面,新建一个 generator包,

打开一个dos窗口,进入到工程目录下的该工程下,例如我的工程testa在e盘下的workspace下面,则是cd e:\workspace\testa
然后执行如下命令:  mvn org.mybatis.generator:mybatis-generator-maven-plugin:1.3.1:generate
如果出现build success,则成功,会看到在generator下面出现了java和resources文件夹,并且里面有我们生成的包和文件。

这就大功告成了,将文件放到我们开发的包下,使用吧。


ps:现在我越来越能体会到,问题出现了应该感到高兴的心情,因为又要长知识了。最近要静心下来好好学习。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-305905-1-1.html 上篇帖子: mybatis源代码分析之org.apache.ibatis.datasource包 下篇帖子: mybatis编程事务管理参考四
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表