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

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

1.准备工作

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

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

新建如下结构目录:

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

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

5.注意点

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

时间: 2024-10-28 16:06:20

使用mybatis-generator工具加快开发速度的相关文章

SpringMVC+Spring+Mybatis+Generator工具

Generator工作空间准备 配置文件(generator.xml),修改你自己的相关路径即可,此配置生成的为最简介的代码,详细配置请查看注释信息 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

mybatis generator工具的使用

mybatis反转数据库的配置文件: 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/mybati

mybatis generator协助ssm开发心得总结

一.配置 mybatis generator用于自动生成相关表所对应的java文件,包括:javabean,dao接口,映射文件,如下所示: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration 3 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

xcode 常用插件 加快开发速度 --严焕培

1.KSImageNamed-Xcode 为项目中使用的UIImage的imageNamed提供文件名自动补全功能.使用[UIImage imageNamed:@"xxx"]时,该插件会扫描整个workspace中的图片文件. 项目地址: https://github.com/ksuther/KSImageNamed-Xcode 2.CocoaPods for Xcode 非常方便的Xcode pods插件.可以很方便的在Xcode通过pods安装各种objective-c第三方库,省

微信公众号项目总结--加快开发速度和调试效率

近端时间接手了某上市公司的内部员工分享系统的微信端项目,由于接手后去理解整个项目的架构.规范等的时间紧迫,所以导致开发期间遇到较多问题从而加班加到心力交瘁.现在项目大概算完成了一个里程碑,所以在这里总结一下项目中所获得的东西,所踩过的坑,好让下一次开发更具效率. 前端本地模拟微信登录 由于微信公众号要使用微信jssdk api,api的使用需要微信授权.登录.获取token等一系列操作,如果是本地调试的话可以通过url的判断进行微信模拟登录.这样做的好处利于扩展,如果该产品不只使用于微信端的时候

嵌入式Linux如何加快物联网方案的开发速度

很明显,无论是对现有设备进行扩展还是从零开始设计新型设备或系统,使用 嵌入式Linux 都能够带来最理想的物联网生态系统构建速度.嵌入式Linux 与桌面 Linux 共享同一套源代码库,但其同时匹配不同的用户界面工具及其它高层组件. 下面,我们将共同探讨几类常见情况. 通常,极低功率应用( 例如传感器 ) 能够凭借一次性电池甚至自身供能机制运行数个月之久.这意味着任何 Linux 在其上运行时都将带来无法承载的负荷.其低功率特性意味着我们无法直接使用 IP 连接,必须配合互联网网关.网关能够通

Mybatis generator 生成domain字段带数据库注释

由于目前准备开始的项目要用到Mybatis,所以不可避免的要使用Mybatis generator工具通过数据库直接生成map,entity.但在使用过程中,原版的Mybatis generator有很多不足,每次启动的时候还要单独启动,不能在eclipse里面通过插件启动:不能把数据库注释写入文件中是一个最大问题.但是我想要直接带数据库中文注释的eclipse插件,找了好久都没找到,只找到菠萝大象的http://www.blogjava.net/bolo/category/54755.html

Hello Mybatis 02 mybatis generator

接着上一篇文章通过Mybatis完成了一个User的CRUD的功能之后,这篇开始还需要建立一个Blog类,这样就可以模拟一个简单的微博平台的数据库了. 数据库准备 首先我们,还是需要在数据库中新建一个表blog 1 CREATE TABLE `blog`.`blog` ( 2 `b_id` INT NOT NULL, 3 `b_title` VARCHAR(45) NULL, 4 `b_content` VARCHAR(255) NULL, 5 `user_id` INT NULL, 6 PRI

数据库逆向代码生成工具:MyBatis Generator的使用

1.前言 今天开发零销量系统,按照我自己的开发习惯,表设计出来了之后就是写dao层mapper了.以前自己学习的时候都是自己一个一个的敲出来.也听过过像hibernate反向工具一样的自动生成dao层的工具,之前没有使用过,今天正好用了一下generator,感觉很好用,可以逆向生成持久层的基本代码节省了大量的时间.而且使用起来很方便,只需要在一个配置文件里面改几个配置信息就可以了. 2.介绍 MyBatis Generator github  https://github.com/mybati