码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis逆向构建

时间:2015-07-25 18:28:25      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:mybatis   数据库   

MyBatis逆向构建工程

MyBatis

Mybatis是一款优秀的轻量级O/R mapping框架。就像Hibernate能够将Pojo和数据库表关联起来一样,mybatis能够将Pojo和sql关联映射起来。它的逆向工程能够根据数据库表生成POJO、DAO和mapper.xml,同时将这三者无缝联系起来。下面就先介绍它的逆向生成方式:

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>
    <!--数据库驱动jar -->
    <classPathEntry
        location="E:\mysql-connector-5.1.5.jar" />

    <context id="xxx" targetRuntime="MyBatis3">
        <!--去除注释 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!--数据库连接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://xxx:3306/xxx" 
            userId="xxx"
            password="xxx">
        </jdbcConnection>
        <!--默认false Java type resolver will always use java.math.BigDecimal if 
            the database column is of type DECIMAL or NUMERIC. -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!--生成实体类 指定包名 以及生成的地址 (可以自定义地址,但是路径不存在不会自动创建 使用Maven生成在target目录下,会自动创建) -->
        <javaModelGenerator targetPackage="com.mycompany.app.model"
            targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!--生成SQLMAP文件 -->
        <sqlMapGenerator targetPackage="com.mycompany.app.dao"
            targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <javaClientGenerator type="XMLMAPPER"
            targetPackage="com.mycompany.app.dao" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!--对应数据库表 mysql可以加入主键自增 字段命名 忽略某字段等 -->

        <table schema="test" tableName="train_tp" domainObjectName="TrainTp"
            enableCountByExample="true" enableUpdateByExample="true"
            enableDeleteByExample="true" enableSelectByExample="true"
            selectByExampleQueryId="true">
            <generatedKey column="ID" sqlStatement="mysql" identity="true" />
        </table>
    </context>
</generatorConfiguration>
  • 上述配置文件指明了mysql driver会用来连接database。classPathEntry指明了mysql-driver的加载路径。jdbcConnection 表明了连接参数。

  • JavaTypeResolver 不应该强制限定BigDecimal,这样mybatis就能够根据表字段的实际数据类型选择合适的java类(如:Short,Integer, Long)。

  • javaModelGenerator 应使用子路径,在本例中生成的POJO将会放在 com.mycompany.app.model下。为了避免数据库表字段的值中出现两端的空格,trimStrings应该使用,意味着setter方法中会调用String的trim对传入的参数进行处理。本例中table为train_tp,POJO名为TrainTp。

  • sqlMapGenerator 应使用子路径,在本例中生成的TrainTpMapper.xml文件将会放在com.mycompany.app.mapper 路径下。

  • javaClientGenerator 应使用子路径,在本例中生成的TrainTpMapper.java文件将会放在com.mycompany.app.mapper 路径下。

  • table对应着目标数据库表。generateKey 意味着mysql 的主键自增。

生成方法

mvn org.mybatis.generator:mybatis-generator-maven-plugin:1.3.0:generate
使用命令行,在工程目录pom所在的地方构建。

生成结果

技术分享
注意:配置中将mapper.xml的targetProject定为了src/main/resources。但是,所在的com.mycompany.app.dao必须跟TrainTpMapper.java所在的路径一样:com.mycompany.app.dao。这样在以后spring和mybatis集成的时候才能找到。

使用方法

TrainTpExample:
如果删除一个信息:

public int deleteInfo(long user_id,long team_id){
        TrainTpExample ue = new TrainTpExample();
        ue.createCriteria()
                .andUserIdEqualTo(new BigDecimal(user_id))
                .andTeamIdEqualTo(new BigDecimal(team_id));
        return trainTpMapper.deleteByExample(ue);
    }

生成的Example类是用来集成各种条件进行操作的,createCriteria 用来生成各种条件。
trainTpMapper为调用接口,是TrainTpMapper类。
在spring和mybatis集成的时候即可使用@Resource或@Autowire进行直接声明。

mybatis官方文档:http://mybatis.github.io/generator/configreference/xmlconfig.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

Mybatis逆向构建

标签:mybatis   数据库   

原文地址:http://blog.csdn.net/langduhualangdu/article/details/47055789

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!