MyBatis生成器简介

MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器。它将生成所有版本的MyBatis的代码,以及版本2.2.0之后的iBATIS。它将内省数据库表(或许多表),并将生成可用于访问表的工件。这减少了设置对象和配置文件与数据库表交互的初始滋扰。MBG试图对简单CRUD(创建,检索,更新,删除)的大部分数据库操作产生重大影响。您仍然需要为连接查询或存储过程手动编写SQL和对象。

MyBatis Generator将会生成:

  • 与表结构匹配的Java POJO。这可能包括:

    • 一个类匹配表的主键(如果有一个主键)
    • 一个匹配表的非主键字段的类(BLOB字段除外)
    • 包含表的BLOB字段的类(如果表具有BLOB字段)
    • 一个类来启用动态选择,更新和删除

    这些类之间有适当的继承关系。请注意,生成器可能被配置为生成不同类型的POJO层次结构 - 例如,如果您愿意,您可以选择为每个表生成单个域对象。

  • MyBatis / iBATIS兼容的SQL地图XML文件。MBG为配置中的每个表上的简单CRUD函数生成SQL。生成的SQL语句包括:
    • 通过主键更新
    • 通过示例更新(使用动态where子句)
    • 通过主键删除
    • 通过示例删除(使用动态where子句)
    • 通过主键选择
    • 通过示例进行选择(使用动态where子句)
    • 以身作则

    根据表的结构,这些语句有不同的变体(例如,如果表没有主键,则MBG不会通过主键函数生成更新)。

  • 适合使用上述对象的Java客户端类。Java客户机类的生成是可选的。MBG将为MyBatis 3.x生成以下类型的Java客户端:
    • 与MyBatis 3.x映射器基础结构配合使用的映射器接口

    MBG将为iBATIS 2.x生成以下类型的Java客户端:

    • 符合Spring框架的DAO
    • 只使用iBATIS SQL映射API的DAO。这些DAO可以通过两种方式生成:通过构造函数或setter注入来提供SqlMapClient
    • 符合iBATIS DAO框架的DAO(这是iBATIS的一个可选部分,现在这个框架已经被废弃了,我们建议你改用Spring框架)

MyBatis生成器被设计为在迭代开发环境中运行良好,并且可以作为Ant任务或Maven插件包含在持续构建环境中。迭代运行MBG时需要注意的重要事项包括:

  1. 如果存在与新生成的XML文件具有相同名称的现有文件,MBG将自动合并XML文件。MBG不会覆盖您对其生成的XML文件所做的任何自定义更改。您可以反复运行它,而不用担心丢失对XML的自定义更改。MBG将替换之前运行中生成的任何XML元素。
  2. MBG 不会合并Java文件,它可以覆盖现有文件或使用不同的唯一名称保存新生成的文件。如果对生成的Java文件进行更改并重复运行MBG,则必须手动合并更改。当作为Eclipse 插件运行时 ,MBG可以自动合并Java文件。

运行Eclipse

当作为Eclipse功能运行时,生成器还可以合并Java文件并将用户修改保存到生成的Java文件中。生成器使用Eclipse Java解析器和AST walker来完成此操作。Eclipse功能还具有一些用户界面增强功能,使生成器可以更容易地运行。最后,Eclipse功能为Eclipse帮助系统提供了生成器的完整用户手册。

Eclipse功能可以在Eclipse市场上找到:https: //marketplace.eclipse.org/content/mybatis-generator

依赖

MBG除了JRE之外没有任何依赖关系。JRE 6.0或以上是必需的。此外,还需要实现DatabaseMetaData接口的JDBC驱动程序,尤其是getColumns和 getPrimaryKeys方法。

支持

通过MyBatis用户邮件列表提供对MyBatis生成器的支持。您可以通过Google代码在此处订阅或查看邮件列表:

http://groups.google.com/group/mybatis-user

如果您认为发现了错误,请在创建新工单之前先在用户列表中提出一个问题。如果您发现错误或者有新的功能请求,您可以在GitHub这里打开一个新的问题:

https://github.com/mybatis/generator/issues

如何使用MyBatis

下载地址:腾讯微云传送门

一、直接使用命令启动

1.下载解压后的结构图

2.配置连接 编辑generatorConfig文件

<?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="mysql51.12.jar" />
<context id="MBG" targetRuntime="MyBatis3">
<!-- 去除自动生成的注释 -->
<commentGenerator>
<property name="suppressAllComments" value="true" />
<property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳-->
</commentGenerator>
<!-- 数据库配置 -->
<!--<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@192.168.1.179:1521:reward"
userId="qxsomp"
password="qixin20130802">-->
<!--<jdbcConnection driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
connectionURL="jdbc:sqlserver://127.0.0.1:1433;
DatabaseName=demo"
userId="sa"
password="sa">-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1/platformdb"
userId="root"
password="root">
</jdbcConnection> <javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- model配置 -->
<javaModelGenerator targetPackage="demo.model" targetProject="./src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- xml配置文件 -->
<sqlMapGenerator targetPackage="demo.mapperxml" targetProject="./xml">
<property name="enableSubPackages" value="true" /> </sqlMapGenerator>
<!--接口-->
<javaClientGenerator type="XMLMAPPER" targetPackage="demo.mapper" targetProject="./src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 表名-->
<table tableName="s_users" domainObjectName="Users"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table> </context>
</generatorConfiguration>

确认配置无误的时候将start中的命令在dos中执行,如果出现前言不允许有内容的错误时,将generatorConfig.xml文件用记事本另存为ANSI编码

3.使用命令启动生成工具

在mybatis generaotr工具跟目录下按下Shift并鼠标右键,在菜单键中找到“在此处打开命令窗口”并点击此项

输入 start start.bat 并回车

回车后会自动打开一个新的命令窗口:

以下界面就是生成成功并无错误的提示

以下界面就是生成成功但有错误提示:错误的原因是因为生成的之前有存在相同的文件在目录下了。这样虽然生成成功了,但是是吧两次生成结果追加为一个。这样的话将文件复制到项目中是会出现异常的,需要先修改在复制到项目。或者生成前先删除之前已生成的文件。

以下界面就是生成失败并有异常提示:具体错误原因请根据反馈消息鉴别。这里的原因是因为xml配置文件中有问题。数据连接不存在。导致jdbc连接失败了。

二、配合maven+IDEA开发工具使用

1.在pom.xml中的 <build>标签中添加plugins标签

<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
</plugins>

注意事项:这里的configurationFile路径指的就是mybatis-generator中的配置文件路径,具体路径根据自己的项目决定

2启动

mvn mybatis-generator:generate 或者直接点击

利用mybatis-generator自动生成数据持久化的代码的更多相关文章

  1. mybatis generator 自动生成dao层映射代码

    资源: doc url :http://www.mybatis.org/generator/ download:https://github.com/mybatis/generator/release ...

  2. 使用Mybatis Generator自动生成Mybatis相关代码

    本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码: 一.构建一个环境: 1. 首先创建一个表: CREATE TABLE pet (name VARCHAR(2 ...

  3. SpringBoot 添加mybatis generator 自动生成代码插件

    自动生成数据层代码,提高开发效率 1.pom添加插件,并指定配置文件路径 <!-- mybatis generator 自动生成代码插件 --> <plugin> <gr ...

  4. IDEA Maven Mybatis generator 自动生成代码

    IDEA Maven Mybatis generator 自动生成代码 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP ...

  5. IDEA Maven Mybatis generator 自动生成代码(实例讲解)(转)

    IDEA Maven Mybatis generator 自动生成代码(实例讲解) MyBatis Generator • 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的 ...

  6. 使用MyBatis Generator自动生成MyBatis的代码

    这两天需要用到MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生 ...

  7. idea中mybatis generator自动生成代码配置 数据库是sqlserver

    好长时间没有写博客了,最近公司要用java语言,开始学习java,属于初学者,今天主要记录一下mybatis generator自动生成代码,首先在如下图的目录中新建两个文件,如下图 generato ...

  8. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

    原文链接 我们这一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池 ...

  9. 利用strut2标签自动生成form前端验证代码

    利用strut2标签自动生成form前端验证代码,使用到的技术有1.struts2标签,如<s:form> <s:textfieled>2.struts2读取*Validati ...

随机推荐

  1. IIFE的形式、原理和常见写法

    immediately invoked function expression 立即调用的函数表达式 出现的形式: 最近做牛客网的JS在线编程,遇到几道考闭包的题目,发现闭包的尾巴那儿经常会出现一对小 ...

  2. 谈谈自己的理解:python中闭包,闭包的实质

    闭包这个概念好难理解,身边朋友们好多都稀里糊涂的,稀里糊涂的林老冷希望写下这篇文章能够对稀里糊涂的伙伴们有一些帮助~ 请大家跟我理解一下,如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内 ...

  3. Hive&SqlServerql:inner join on条件中如果两边都是空值的情况下,关联结果中会把数据给过滤掉。

    今天遇到的一个大坑,话不多少,看sql和下边的查询结果: --问题:恰好把buildingid is null的记录给过滤掉 ),buildingid ),)); ); ); ); ); ); ); ...

  4. POJ-1753 Flip Game---二进制枚举子集

    题目链接: https://vjudge.net/problem/POJ-1753 题目大意: 有4*4的正方形,每个格子要么是黑色,要么是白色,当把一个格子的颜色改变(黑->白或者白-> ...

  5. Menu-菜单组件

    #menu菜单组件 from tkinter import * master=Tk() def callback(): print('你好咯!!') m = Menu(master) m.add_co ...

  6. Python3NumPy——数组(1)之创建

    开篇 numpy库作为科学计算的基础库,其地位相当重要,它是对数组操作的基石.它的存在使得线性代数以及矩阵论等相关知识在计算机上的表达更加方便与简单,集中体现出了人想办法,计算机去工作. Python ...

  7. django实现model中choices类型字段,后台自由配置

    该功能主要试用于项目中有大量需要动态配置的字典字段,字典建议做缓存处理. 定义字典类型表,字典值两张表 2.配置对应的字典值 3.重写model的init方法,动态赋值choice 4.列表界面效果 ...

  8. ionic新入坑-环境搭建+新建项目+打开低版本项目处理

    是的.我又双叒叕入新坑了.想我大学的时候web-app刚火起来.还帮忙做了我们学校医务室系统的web-app页面部分呢.时间太紧最后也没出个完整的版本.那时候只是用H5简单做了web部分.是想着用ph ...

  9. Java面试题2--数据类型

    1. Java的数据类型? 2. Java的封装类型? 3. 基本类型和封装类型的区别? 基本类型只能按值传递,而对应的封装类是按引用传递的. 基本类型是在堆栈上创建的,而所有的对象类型都是在堆上创建 ...

  10. HTML笔记04---计时事件

    JavaScript运动01 计时事件 1.语法:var t=setTimeout("javascript语句",毫秒); setTimeout() 方法会返回某个值.在上面的语句 ...