MyBatis Generator 常用配置记录说明
2017-11-09 21:16
405 查看
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久型框架。它的使用简化了我们对数据库的操作,同事推荐这是后台操作数据库最方便的框架。
MyBatis Generator代码自动生成工具也给我们实现该框架提供了极大的便利,我们只需要经过简单的配置便可以生成想要的代码。
generatorConfiguration:
配置主要内容,包含以下元素(有严格顺序):properties(0或1个),classPathEntry(0或多个),context(1或多个)
properties:
指定外部的属性元素,不是必须元素。
属性(不能同时使用):
resource:指定classpath下属性文件,例如根目录下的jdbc.properties;
url:指定文件系统上的属性文件,例如file:///C:/jdbc.properties;
classPathEntry:
加载其他用途的jar,仅用于JDBC数据库连接和加载跟类重点 javaModelGenerator检查重写方法时
context:
用于指定生成一组对象的环境,至少需要一个
属性:
defaultModelType:conditional(默认,),flat(推荐,该模型为每张表生成一个实体类),hierarchical;
targetRuntime:MyBatis3(默认),MyBatis3Simple(不生成Example查询相关内容,可避免后面需要逐个配置<table>),Ibatis2Java2,Ibatis2Java5,一般使用默认;
jdbcConnection:
用于制定数据库连接信息,只能有一个,jdbc驱动不在classpath下,可通过classPathEntry导入,
属性:
driverClass:访问JDBC驱动程序的完全限定类名;
connectionURL:访问数据库JDBC的url;
userId:访问数据库的用户Id;
password:访问数据库的密码;
javaModelGenerator:
控制生成的实体类,必须配置一个,且只能有一个。
属性:
targetPackage:生成实体类的包名,受table影响;
targetProject:指定项目路径;
子元素:
constructorBased:只对MyBatis3有效,true为构造方法入参,false是setter方法入参,默认false;
enableSubPackages:true根据schema生成子包,false直接使用targetPackage,默认false;
trimStrings:对String类型字段在setter方法中调用trim()方法;
immutable:配置实体类是否可变,true时不管constructorBased设置成什么全用构造方法入参,并不会生成setter,false实体属性不能改变,默认false;
rootClass:设置所有实体类的基类,设置需要填基类的完全限定名称,若设置,在基类属性与父类属性名称一致、类型一致且有getter、setter方法情况下不替换属性;
sqlMapGenerator:
生成映射文件的包名和位置,可选配置,最多只能配置一个,但在以下情况必须配置:
1、targetRuntime为iBATIS2
2、targetRuntime为MyBatis3,且当javaClientGenerator需要XML时必须配置,如果没有配置javaClientGenerator时按照以下规则:
2.1、指定了一个sqlMapGenerator,至声称XML的SQL映射文件和实体类;
2.2、没有指定sqlMapGenerator,只生成实体类;
属性:
targetPackage:生成实体类包名,受table影响;
targetProject:指定目标项目路径;
enableSubPackages:true根据schema生成子包,false直接使用targetPackage,默认false;
javaClientGenerator:
生成DAO的包名和位置,可选配置,最多只能配置一个,不配置就不会生成Mapper接口。
属性:
type:必选,用于选择一个预定义的Mapper接口生成器,默认配置根据targetRuntime分成以下几类:
1、targetRuntime=MyBatis3:
ANNOTATEDMAPPER(基于注解的Mapper接口,不会有对应XML映射文件),
MIXEDMAPPER(XML和注解的混合形式,SqlProvider注解方法会被XML替换),
XMLMAPPER:所有方法都在XML中接口调用依赖XML文件,
2、targetRuntime=MyBatis3Simple:
ANNOTATEDMAPPER:基于注解的Mapper接口,不会有对应的XML映射文件,
XMLMAPPER:所有方法都在XML中接口调用依赖XML文件,
3、targetRuntime=Ibatis2Java2或Ibatis2Java5:
IBATIS:生成的对象符合iBATIS的DAO框架(不建议使用),
GENERIC-CI:生成的对象将只依赖于SqlMapClient,通过构造方法注入,
GENERIC-SI:生成的对象将只依赖于SqlMapClient,通过setter方法注入,
SPRING:生成的对象符合Spring的DAO接口,
targetPackage:必选,生成实体类包名,受table影响;
targetProject:必选,指定目标项目路径;
implementationPackage:可选,指定该属性,实现类生成在这个包中;
table:
用于配置要生成的表,至少配一个,可配置多个。
属性:
tableName:必选,指定要生成的表名,可使用SQL通配符匹配多张表(%:生成所有);
MyBatis Generator代码自动生成工具也给我们实现该框架提供了极大的便利,我们只需要经过简单的配置便可以生成想要的代码。
插件
MyBatis Generator插件已经比较成熟,MyEclipse中通过插件生成一个简单配置,我们只需要将信息补充完整,右键配置文件就能生成代码。<?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> <context id="context1"> <jdbcConnection connectionURL="???" driverClass="???" password="???" userId="???" /> <javaModelGenerator targetPackage="???" targetProject="???" /> <sqlMapGenerator targetPackage="???" targetProject="???" /> <javaClientGenerator targetPackage="???" targetProject="???" type="XMLMAPPER" /> <table schema="???" tableName="???"> <columnOverride column="???" property="???" /> </table> </context> </generatorConfiguration>
MyBatis Generator配置说明
MyBatis Generator的配置属性节点相对较多,这里记录常用的一些配置。generatorConfiguration:
配置主要内容,包含以下元素(有严格顺序):properties(0或1个),classPathEntry(0或多个),context(1或多个)
properties:
指定外部的属性元素,不是必须元素。
属性(不能同时使用):
resource:指定classpath下属性文件,例如根目录下的jdbc.properties;
url:指定文件系统上的属性文件,例如file:///C:/jdbc.properties;
classPathEntry:
加载其他用途的jar,仅用于JDBC数据库连接和加载跟类重点 javaModelGenerator检查重写方法时
context:
用于指定生成一组对象的环境,至少需要一个
属性:
defaultModelType:conditional(默认,),flat(推荐,该模型为每张表生成一个实体类),hierarchical;
targetRuntime:MyBatis3(默认),MyBatis3Simple(不生成Example查询相关内容,可避免后面需要逐个配置<table>),Ibatis2Java2,Ibatis2Java5,一般使用默认;
jdbcConnection:
用于制定数据库连接信息,只能有一个,jdbc驱动不在classpath下,可通过classPathEntry导入,
属性:
driverClass:访问JDBC驱动程序的完全限定类名;
connectionURL:访问数据库JDBC的url;
userId:访问数据库的用户Id;
password:访问数据库的密码;
javaModelGenerator:
控制生成的实体类,必须配置一个,且只能有一个。
属性:
targetPackage:生成实体类的包名,受table影响;
targetProject:指定项目路径;
子元素:
constructorBased:只对MyBatis3有效,true为构造方法入参,false是setter方法入参,默认false;
enableSubPackages:true根据schema生成子包,false直接使用targetPackage,默认false;
trimStrings:对String类型字段在setter方法中调用trim()方法;
immutable:配置实体类是否可变,true时不管constructorBased设置成什么全用构造方法入参,并不会生成setter,false实体属性不能改变,默认false;
rootClass:设置所有实体类的基类,设置需要填基类的完全限定名称,若设置,在基类属性与父类属性名称一致、类型一致且有getter、setter方法情况下不替换属性;
sqlMapGenerator:
生成映射文件的包名和位置,可选配置,最多只能配置一个,但在以下情况必须配置:
1、targetRuntime为iBATIS2
2、targetRuntime为MyBatis3,且当javaClientGenerator需要XML时必须配置,如果没有配置javaClientGenerator时按照以下规则:
2.1、指定了一个sqlMapGenerator,至声称XML的SQL映射文件和实体类;
2.2、没有指定sqlMapGenerator,只生成实体类;
属性:
targetPackage:生成实体类包名,受table影响;
targetProject:指定目标项目路径;
enableSubPackages:true根据schema生成子包,false直接使用targetPackage,默认false;
javaClientGenerator:
生成DAO的包名和位置,可选配置,最多只能配置一个,不配置就不会生成Mapper接口。
属性:
type:必选,用于选择一个预定义的Mapper接口生成器,默认配置根据targetRuntime分成以下几类:
1、targetRuntime=MyBatis3:
ANNOTATEDMAPPER(基于注解的Mapper接口,不会有对应XML映射文件),
MIXEDMAPPER(XML和注解的混合形式,SqlProvider注解方法会被XML替换),
XMLMAPPER:所有方法都在XML中接口调用依赖XML文件,
2、targetRuntime=MyBatis3Simple:
ANNOTATEDMAPPER:基于注解的Mapper接口,不会有对应的XML映射文件,
XMLMAPPER:所有方法都在XML中接口调用依赖XML文件,
3、targetRuntime=Ibatis2Java2或Ibatis2Java5:
IBATIS:生成的对象符合iBATIS的DAO框架(不建议使用),
GENERIC-CI:生成的对象将只依赖于SqlMapClient,通过构造方法注入,
GENERIC-SI:生成的对象将只依赖于SqlMapClient,通过setter方法注入,
SPRING:生成的对象符合Spring的DAO接口,
targetPackage:必选,生成实体类包名,受table影响;
targetProject:必选,指定目标项目路径;
implementationPackage:可选,指定该属性,实现类生成在这个包中;
table:
用于配置要生成的表,至少配一个,可配置多个。
属性:
tableName:必选,指定要生成的表名,可使用SQL通配符匹配多张表(%:生成所有);
简单示例
<?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> <!-- 属性,指定classpath下的属性文件 --> <properties resource="jdbc.properties"/> <!-- 加载其他用途的jar --> <classPathEntry location="mysql-connector-java-5.1.24.jar"/> <!-- 用于指定生成一组对象的环境 --> <context id="context" defaultModelType="flat" targetRuntime="MyBatis3Simple"> <!-- 数据库配置 --> <jdbcConnection driverClass="${db.driver}" connectionURL="${db.url}" userId="${db.username}" password="${db.password}"/> <!-- 控制生成的实体类 --> <javaModelGenerator targetPackage="com.sjl.mybatis.model" targetProject="MyBatis"> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成映射文件 --> <sqlMapGenerator targetPackage="sqlmap.auto" targetProject="MyBatis"> </sqlMapGenerator> <!-- 生成DAO --> <javaClientGenerator targetPackage="com.sjl.mybatis.dao" type="XMLMAPPER" targetProject="MyBatis"> </javaClientGenerator> <!-- 要生成的表 --> <table tableName="%"></table> </context> </generatorConfiguration>
相关文章推荐
- MyBatis Generator常用配置说明
- Myeclipse的插件mybatis-generator创建的配置文件generatorConfig.xml的配置详细说明
- Mybatis Generator配置说明
- MyBatis-Generator的配置说明和使用
- Mybatis Generator配置说明
- MyBatis-Generator的配置说明和使用
- Mybatis-generator配置说明
- iOS所有常用证书,appID,Provisioning Profiles配置说明及制作图文教程
- Mybatis Generator最完美配置文件详解(完整版)
- 苹果所有常用证书,appID,Provisioning Profiles配置说明及制作图文教程
- Kali-linux-2016.2安装后常用配置记录(1)
- mybatis generator工具类 自动生成 配置文件以及实体类
- Ubuntu常用配置记录(杂)
- Java log4j日志记录工具配置说明
- iOS所有常用证书,appID,Provisioning Profiles配置说明及制作图文教程
- mybatis学习笔记(六)使用generator生成mybatis基础配置代码和目录结构
- mybatis-generator相关配置
- 常用的两种spring和mybatis 配置方式
- 电商项目(十八)项目初始化(mybatis三剑客之mybatis-generator配置)
- Mybatis generator 添加记录时返回自增主键