文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用mybatis-generator工具加快开发速度

2024-04-02 19:55

关注

    在使用mybatis时,需要书写大量的mapping映射文件,手动书写工作量大并且容易出错。值得庆幸的是,Mybatis-Generator可以用来帮助我们自动生成这些文件,大幅度提高开发效率。

    1.准备工作

从https://github.com/mybatis/generator/releases下载mybatis-generator的jar包;

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

新建如下结构目录:

使用mybatis-generator工具加快开发速度

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.效果

使用mybatis-generator工具加快开发速度

使用mybatis-generator工具加快开发速度

使用mybatis-generator工具加快开发速度

使用mybatis-generator工具加快开发速度

生成代码之后,根据自己的实际项目架构,可以对生成的代码进行适当的修改,如把数据库管理交有spring等等。

5.注意点

1)generator.xml格式:必须是以UTF-8无BOM格式编码,用notepad++转换。
2)注意数据库包的可用性,无效的数据库包转换会报错。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯