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

[经验分享] 使用mybatis-generator工具加快开发速度

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-8 09:17:36 | 显示全部楼层 |阅读模式
  在使用mybatis时,需要书写大量的mapping映射文件,手动书写工作量大并且容易出错。值得庆幸的是,Mybatis-Generator可以用来帮助我们自动生成这些文件,大幅度提高开发效率。    1.准备工作
https://github.com/mybatis/generator/releases下载mybatis-generator的jar包;

http://www.grepcode.com下载数据库驱动包。

新建如下结构目录:
QQ截图20160708091616.png
2.generator.xml介绍
生成相关文件前,需要进行配置,配置文件名称任意,后缀为xml。(属性相关解释在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="mysql-connector-java-5.1.36.jar"/>
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库链接地址账号密码-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/mybatis" userId="root" password="yxc.">
        <!--oracle数据库
        <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"  
          connectionURL="jdbc:oracle:thin:@localhost:1521:ORCL"  
          userId="username"  
          password="password">  
        </jdbcConnection>  
        -->
        </jdbcConnection>
        <!--  默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer;
         true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal   
        -->   
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!--生成Model类存放位置-->
        <javaModelGenerator targetPackage="yb.model" targetProject="src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="true"/>
            <!-- 从数据库返回的值被清理前后的空格  -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!--生成映射文件存放位置-->
        <sqlMapGenerator targetPackage="yb.mapping" targetProject="src">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!--生成Dao类存放位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="yb.dao" targetProject="src">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!--生成对应表及类名-->
        <!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名
        若要生成例子可将enableCountByExample等设为true, 就会生成一个对应domainObjectName的Example类,false则不生成,默认策略是true。
        类似的还有enableUpdateByExample、enableDeleteByExample、enableSelectByExample、selectByExampleQueryId属性。
        -->  
        <table tableName="phone" domainObjectName="Phone" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>
3.运行
运行有四种:命令生成(最简单)、Java生成、ant生成、maven生成。这里说前面两种,有兴趣其余的可以在mybatis官网去学习。
1)打开cmd命令窗口,cd到工作目录中,运行如下命令
java - jar mybatis-generator包的文件路径  -configfile  generator.xml的文件路径  -overwrite 命令。
本例为:

java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite
成功时输出:MyBatis Generator finished successfully.
2)java生成

List<String> warnings = new ArrayList<String>();
   boolean overwrite = true;
   File configFile = new File("generatorConfig.xml");
   ConfigurationParser cp = new ConfigurationParser(warnings);
   Configuration config = cp.parseConfiguration(configFile);
   DefaultShellCallback callback = new DefaultShellCallback(overwrite);
   MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);

   myBatisGenerator.generate(null);
其实Java运行,细分可以分两种,还有一种可以去官网学习。
4.效果
QQ截图20160708091623.png
QQ截图20160708091629.png
QQ截图20160708091637.png
QQ截图20160708091656.png
生成代码之后,根据自己的实际项目架构,可以对生成的代码进行适当的修改,如把数据库管理交有spring等等。
5.注意点
1)generator.xml格式:必须是以UTF-8无BOM格式编码,用notepad++转换。
2)注意数据库包的可用性,无效的数据库包转换会报错。


运维网声明 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-241028-1-1.html 上篇帖子: mybatis-ehcache 用法配置备忘 下篇帖子: mybatis中#{}和${}传参的区别 开发
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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