文章目录

  • MyBatis Generator简介.
  • MyBatis Generator的配置使用(基于MyBatis3)
    • 1. 需要导入依赖和插件
    • 2. 在项目下创建mybatis-generator.xml配置文件,属性详解(基于MyBatis3)【*****】
    • 3. 自动生成bean、dao、和mapper映射文件

MyBatis Generator简介.

   MyBatis Generator(MBG)是MyBatis和iBATIS的代码生成器(逆向生成)。它将自动将查询数据库表,并将生成可用于访问表的构件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。MBG虽然减少了对于数据库表简单的CRUD(创建、检索、更新、删除)大量代码,但是对于复杂的连接查询和存储过程还是需要手动编写映射sql和bean。
  使用MyBatis Generator插件自动生成MyBatis所需要的DAO接口、实体模型类(bean)、Mapping映射文件,将生成的代码复制到项目工程中即可,把更多精力放在业务逻辑上

地址:http://mybatis.org/generator/index.html

  MyBatis Generator有三种常用方法自动生成代码:命令行、Eclipse插件和Maven插件

MyBatis Generator的配置使用(基于MyBatis3)

1. 需要导入依赖和插件

 </dependency><!--  mybatis-generator的依赖 自动生成javabean和sql --><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.4</version></dependency><!--mysql驱动类--><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.38</version></dependency></dependency><plugins><!--mybatis-generator插件 用于自动生成javabean和sqlversion版本要与mysql的version一样--><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.4</version><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.38</version></dependency></dependencies><configuration><overwrite>true</overwrite><configurationFile>./mybatis-generator.xml</configurationFile></configuration></plugin></plugins>

2. 在项目下创建mybatis-generator.xml配置文件,属性详解(基于MyBatis3)【*****】

模板:http://mybatis.org/generator/configreference/xmlconfig.html

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><!-- generatorConfiguration根节点,没有任何属性 -->
<generatorConfiguration><!--<classPathEntry>不必须 0个或多个。  类实体路径 生成指定路径的  通过这个属性指定驱动的路径--><!-- <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />--><!-- <context>元素用于指定生成一组对象的环境 : 该元素有一个必选属性id,用来唯一标识一个<context>元素targetRuntime属性主要使用两个值: MyBatis3(默认值)和MyBatis3Simple,如果不想生成Example查询相关的内容,就用MyBatis3SimpledefaultModelType属性有三个值:conditional、flat、hierarchicalconditional:默认值,如果表只包含一个字段,就不会生成一个单独的类,会将该字段合并到基本实体类中。flat:为每一张表只生成一个实体类(实体类包含表中的所有字段)hierarchical:如果表有主键,那么该模型会产生一个单独的主键实体类,如果表还有BLOB字段, 则会为表生成一个包含所有BLOB字段的单独的实体类,然后为所有其他的字段生成一个单独的实体类。 MBG会在所有生成的实体类之间维护一个继承关系。--><context id="mybatis" targetRuntime="MyBatis3" defaultModelType="flat"><!--<jdbcConnection>必须配置,且只能有一个。用于指定数据库连接信息 【***】这里可以通过 <properties>元素加载属性文件,来读取jdbc连接的属性值--><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false"userId="root"password="861221293"></jdbcConnection><!--<javaTypeResolver >:java类型解析器,最多只能配置一个。--><javaTypeResolver ><!--<property>属性:配置forceBigDecimals(默认值false,一般不需要配置)如果将配置forceBigDecimals配置为true:数据库数据类型number、float、double将会强制转换为BigDecimals--><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- <javaModelGenerator>:必须配置,且只能配置一个。【***】用来控制生成的实体类(生成bean)两个属性:targetPackage和targetProjecttargetPackage:生成的实体类存放位置(包名称)targetProject:指定目标项目的路径(绝对路径/相对路径)(点.代表当前文件所在路径)targetPackage="com.xgf.springmvc.auth.bean" targetProject=".\src\main\java"这样配置将自动生成位置为: 当前文件路径.src.main.java.com.xgf.mybatis_generator.bean--><javaModelGenerator targetPackage="com.xgf.mybatis_generator.bean" targetProject=".\src\main\java"><!--<property>子属性常用属性值:enableSubPackages、trimStringsenableSubPackages:该属性只对MyBatis3有效(对MyBatis3Simple无效),默认值是false。如果值为true就会通过构造方法加入参数,如果false就会调用setter方法加入参数trimStrings:是否对数据库查询结果进行trim操作(trim:最常见的用途是移除开头或结尾的空白字符),默认是false。如果为true就会掉用三目表达式:调用set方式传参的时候,设置值:this.username = (username == null ? null : username.trim())--><property name="enableSubPackages" value="true" /><property name="trimStrings" value="true" /></javaModelGenerator><!--<sqlMapGenerator> 可选属性,最多只能配置一个(0个或者1个)。 用于生成xml映射文件 (生成XxxMpper.xml文件)有两个属性必选:targetPackage、targetProject(和前面的<javaModelGenerator>属性一样,只是这个是生成mapper映射文件,且存储在resources资源目录下)targetPackage="com.xgf.mybatis_generator.bean"  targetProject=".\src\main\resources" (点.代表当前文件所在路径)生成的mapper映射文件路径为:当前文件路径.src.main.resources.com.xgf.mybatis_generator.dao--><sqlMapGenerator targetPackage="com.xgf.mybatis_generator.dao"  targetProject=".\src\main\resources"><!--sqlMapGenerator的property子属性只有一个可以配置的属性值enableSubPackagesenableSubPackages:默认是false如果是true,MBG会根据catalog和schema来生成子包如果false就会直接用targetPackage属性--><property name="enableSubPackages" value="true" /></sqlMapGenerator><!--<javaClientGenerator>:可选属性,但是最多只能配置一个(0个或1个)。(生成dao接口)用于生成dao层(数据库操作层),不配置该元素,就不会生成类的数据库操作mapper接口该元素有三个必选属性:type、targetPackage、targetProjecttype:用于选择一个预定义的客户端代码(可以理解为Mapper接口)生成器。如果使用的是MyBatis3配置,有以下三个值:ANNOTATEDMAPPER:基于注解的Mapper接口,不会有对应的XML映射文件MIXEDMAPPER:XML和注解的混合形式,相比ANNOTATEDMAPPER方式,SqlProvider注解方法会被XML替代。XMLMAPPER:所有的方法都写在XML中,接口调用需要依赖XML文件。--><javaClientGenerator type="XMLMAPPER" targetPackage="com.xgf.mybatis_generator.dao"  targetProject=".\src\main\java"><property name="enableSubPackages" value="true" /></javaClientGenerator><!-- <table>元素:至少配置一个,可以配置多个(1个或多个)。用来配置需要生成的数据库表,只有配置table才能生成对应表的实体类、映射文件和接口必选属性:tableName:这个是对应数据库的表名称(可以使用SQL通配符匹配多个表  可以通过tableName="%"生成全部的表)可选属性:schema:设置该值,生成SQL的表名会变成如schema.tableName的形式(一般写你的【数据库名称】)domainObjectName:生成的对象名称,就是生成的javabean的类名(没有指定,就会和数据库表名相同)useActualColumnNames 使用真实的列名 列名作为属性名generatedKey 主键  sqlStatement数据库 identity自增长columnOverride 列覆盖ignoreColumn 忽略列--><table schema="mybatis" tableName="user" domainObjectName="User" ><!--<property>:可选属性:useActualColumnNames,默认值是false。设置为true,会用数据库表的列名,来作为javabean对象的属性名称设置为false(默认值),MGB将会尝试将返回的名称转换为驼峰形式--><property name="useActualColumnNames" value="true"/><!--<generatedKey>:最多配置一个。用于指定自动生成的主键属性。【主键】必选属性:column:生成的列名称sqlStatement:用于返回新值的SQL语句。如果该列是identity列,可以使用其中一个预定义的的特殊值就是写你使用的数据库名称(MySql/DB2/SqlServer/HSQLDB等数据库名(预定义的特殊值))可选属性:identity:当设置为true时,该列会被标记为identity列--><generatedKey column="ID" sqlStatement="MySql" identity="true" /><!--<columnOverride>元素:可选,可以配置多个(0个或多个)将某些属性默认计算的值更改为指定的值有多个值的时候【比如checkbox、select有多选的时候】,将VARCHAR通过handler转换数组类型必选属性:column:要重写的列名可选属性:javaType:值为完全限定名的Java类型(需要将数据表列数据(column)转换为的类型)typeHandler:自己定义的需要用来处理这列(column)数据的类型处理器(自定义)--><!-- 通过自定义typeHandler将数据库表中的hoobys和friends通过分隔符转换为字符串数组 --><columnOverride column="hobbys" property="hobbys"javaType="java.lang.String[]" jdbcType="VARCHAR"typeHandler="com.xgf.mybatis_generator.typeHandler.StringArrayVarcharHandler"/><columnOverride column="friends" property="friends"javaType="java.lang.String[]" jdbcType="VARCHAR"typeHandler="com.xgf.mybatis_generator.typeHandler.StringArrayVarcharHandler"/><!--<columnOverride column="DATE_FIELD" property="startDate" />--><!--<ignoreColumn>元素:可选,可以配置多个(0个或多个),用来屏蔽不需要生成的列(设置该值得列将不生成到javabean的属性中)必选属性:column:配置要忽略的数据库表列名可选属性:delimitedColumnName:默认值false,匹配列名是否区分大小写,如果为true就区分,如果为false,就不区分。--><!--<ignoreColumn column="FRED" />--></table></context>
</generatorConfiguration>

3. 自动生成bean、dao、和mapper映射文件

在当前mybatis-generator.xml同路径下打开Terminal终端
输入命令mvn mybatis-generator:generate

【SSM -MyBatis篇03】MyBatis Generator(MBG)配置属性详解(基于MyBatis3) - 逆向生成 - 配置MBG模板相关推荐

  1. Struts2零配置属性详解(2)

    2019独角兽企业重金招聘Python工程师标准>>> Struts2 零配置属性详解 一.插件包 直接引入myEclipse里面的struts code 包即可. struts2- ...

  2. java log4配置例子,log4j.properties配置属性详解与配置示例

    log4j.properties配置属性详解与配置示例 发布时间:2018-03-27作者:laosun阅读(1535) log4j.properties配置属性详解与配置示例,拿走直接用!详细解答了 ...

  3. Hibernate 中配置属性详解(hibernate.properties)

    转自:https://blog.csdn.net/shudaqi2010/article/details/70324843 Hibernate能在各种不同环境下工作而设计的, 因此存在着大量的配置参数 ...

  4. Hibernate配置属性详解

    http://www.360doc.com/content/12/0228/19/1369263_190362729.shtml 表 3.3.  Hibernate配置属性 属性名 用途 hibern ...

  5. VPP使用详解——基于VPP的VLAN配置

    组网场景: 配置原理: VPP中的接口模式默认为L3模式,没有和华为.H3C交换机对应的VLAN命令,利用VPP实现VLAN转发的模型类似于Linux中的bridge. 如要实现如下VLAN配置(参见 ...

  6. Spark配置属性详解

    Application相关属性 绝大多数的属性控制应用程序的内部设置,并且默认值都是比较合理的.下面对这些属性进行说明: spark.app.name 该属性没有默认值,它的含义是你的应用程序的名字, ...

  7. tomcat jdbc连接池配置属性详解之参数说明

    driverClassName 数据库驱动类,针对mysql填com.mysql.jdbc.Driver username 用户名 password 密码 maxActive 最大允许的连接数 max ...

  8. ASP.NET Core的配置(2):配置模型详解

    在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式,其中涉及到三个重要的对象,它们分别是承载结构化配置信息的Configuration,提供原始配置源数据的ConfigurationProvi ...

  9. Spartan6芯片配置模式详解(转)

    1. 配置概述 Spartan6系列FPGA通过把应用程序数据导入芯片内部存储器完成芯片的配置.Spart-6 FPGA可以自己从外部非易失性存储器导入编程数据,或者通过外界的微处理器.DSP等对其进 ...

  10. Mybatis源码学习(三)SqlSession详解

    前言 上一章节我们学习了SqlSessionFactory的源码,SqlSessionFactory中的方法都是围绕着SqlSession来的.,那么SqlSession又是什么东东呢?这一章节我们就 ...

最新文章

  1. 4.5 人脸验证与二分类-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  2. .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)...
  3. 在chrome-console中进行xpath/css/js定位
  4. 树莓派服务器证书,【原创】在树莓派3上给Nginx部署免费HTTPS证书
  5. Android 进度条改变图片透明度
  6. druid链接mysql-proxy_MySQL读写分离之mysql-proxy
  7. Maximum Mode
  8. Windows核心编程_窗口透明组件不透明
  9. MyEclipse发布项目更改项目名
  10. 2022化工自动化控制仪表复训题库及模拟考试
  11. DBN(深度置信网络)解析
  12. 儿童专注力训练之找不同2、数数
  13. mysql indentify_ORA-01157: cannot identify/lock data file导致表空间无法on
  14. 【Translate插件】报错:更新TTK失败,请检查网络连接问题
  15. 鸿蒙入门手册(二):应用是怎样运行的
  16. CSS Display与Visibility区别和用法
  17. CGB2107-Day03-mybatis
  18. 明朝那些事 当年明月
  19. 【Redis】(二)Redis命令大全(速记)
  20. 小虫电商,你永远学不会!

热门文章

  1. 数据库课程设计(学校运动会管理系统)2021-9-21
  2. 对网站商城源码的研究分析 分享大量源码下载
  3. mitProxy下载和使用
  4. c语言程序设计身高体重测评系统,C语言程序设计验.doc
  5. ulipad 常用快捷键
  6. 2014.01.25 JFinal 使用经验积累
  7. java azure blobs sas_仅使用SAS令牌连接到Azure存储帐户?
  8. hosts管理工具:SwitchHosts的下载与使用教程
  9. 廖雪峰网站python学习笔记——字符串和编码
  10. Java代码生成器简介、原理、开发流程和Demo