MyBatis Generator自动生成代码

MBG介绍

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

MyBatis使得数据库操作变得非常方便,使用MyBatis进行数据库操作的主要工作是书写Mapping映射文件,然而手写映射文件很容易出错,而且不够规范,因此本文使用MBG(MyBatis Generator)工具来自动生成底层模型类、DAO接口类和Mapping映射文件。

MyBatis Generator可以满足大部分常用的CRUD(Create,Retrieve,Update,Delete)数据库操作。对于复杂的操作,如join或存储过程stored procedures则需要手动编写SQL代码。

MBG将自动生成以下三部分代码

  • 与表结构匹配的java POJOs,包括:

    • 一个与表的主键相匹配的类(如果该表有主键)
    • 一个与表的非主键字段相匹配的类(除了BLOB字段)
    • 一个包含表中BLOB字段的类(如果改表含有BLOB字段)
    • 一个用于动态selects, updates 和 deletes的类(对应于example语句)
  • 与MyBatis/iBATIS兼容的SQL Map XML文件,为简单的CRUD函数生成SQL语句,生成的SQL语句包括:

    • insert
    • update by primary key
    • update by example (using a dynamic where clause)
    • delete by primary key
    • delete by example (using a dynamic where clause)
    • select by primary key
    • select by example (using a dynamic where clause)
    • count by example
  • 可以使用上述对象的java客户端类

    对于MyBaits 3.x将生成:

    • 一个mapper接口,适用于MyBatis 3.x mapper结构

    对于iBATIS 2.x将生成:

    • 适用于Spring框架的DAOs
    • 只使用iBATIS SQL映射API的DAOs
    • 适用于iBATIS DAO框架的DAOs(该框架已弃用,建议使用Spring框架)

MBG 应用

下载

下载MBG并解压:MBG官方下载地址

创建配置文件

配置文件用于告诉MBG:

  • 如何连接到数据库
  • 要生成的对象,以及如何生成
  • 用于对象生成的表

一个最小的配置文件至少包括5个元素:

  1. <jdbcConnection>元素用于指定如何连接到目标数据库
  2. <javaModelGenerator>元素用于指定生成的Java model对象的存放位置(包和项目)
  3. <sqlMapGenerator>元素用于指定生成的SQL map文件的存放位置(包和项目)
  4. <javaClientGenerator>元素用于指定生成的客户端接口和类的存放位置(包和项目),如果不希望生成Java客户端代码,则忽略该元素
  5. <table>至少一个数据库表元素

一个来自官网的配置例子,用于解释配置文件的结构。

<?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="/Program Files/IBM/SQLLIB/java/db2java.zip" />

  <context id="DB2Tables" targetRuntime="MyBatis3">
    <jdbcConnection driverClass="COM.ibm.db2.jdbc.app.DB2Driver"
        connectionURL="jdbc:db2:TEST"
        userId="db2admin"
        password="db2admin">
    </jdbcConnection>

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

    <javaModelGenerator targetPackage="test.model
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值