代码生成器是由mybatis团队开发提供的, 代码生产器通过配置可以生成不同类型的代码,代码包含了数据库表对应的实体类,Mapper 接口类 ,mapper xml 文件和example对象等,这些代码文件几乎包含了全部的单表操作。 当然对于联表操作,还是需要自己书写SQL 的
mybatis 代码生成器主要在于XML 的配置,下面是关于XML 配置的详解
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
"http://mybatis/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 通过属性location 指定数据库驱动的路径-->
<classPathEntry location="D:/manualJar/ojdbc7.jar"/>
<!--context 标签用于指定生成一组对象的环境,例如指定要连接的数据库,要生产对象的类型和要处理的数据库中的表 ,具体属性如下
id 是必填属性 ,并且是唯一的
targetRuntime 属性则是用于指定生产的代码的运行时环境 支持以下可选值
MyBatis3 默认值
MyBatis3Simple 该方式不会生成于Example相关的方法
-->
<context id="testTables" targetRuntime="MyBatis3">
<!-- commentGenerator 标签主要用来配置如何生成注释信息 可以通过property属性进行配置
suppressAllComments :阻止生成注释,默认为false
suppressDate : 阻止生成的注释包含时间戳 默认为false
addRemarkComments 注释是否添加数据库表的备注信息,默认为false
一般情况下,由于生成的注释没有任何价值,而时间戳每次生成都会不一样,所以推荐屏蔽注释信息
当然也可以自己实现注释形式 通过继承DefaultCommentGenerator 实现自定义的注释格式 通过 <commentGenerator type="">引入自定义的注释生成类
-->
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--用于只当需要连接的数据库信息,该标签必选,并且只能有一个 数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@//127.0.0.1:1521/orclpdb"
userId="user"
password="password">
</jdbcConnection>
<!--javaTypeResolver 标签用来配置JDBC 类型和Java 类型的转换
forceBigDecimals 默认false,该property主要用来把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- javaModelGenerator 用来控制生成的实体类
targetPackage 生成实体类存放的包名
targetProject:指定目标项目路径 可以使用相对路径或绝对路径 -->
<javaModelGenerator targetPackage="commons.model"
targetProject="src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
<!-- 判断是否对数据库查询结果进行trim 判断 如果为true 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- sqlMapGenerator 标签用于配置SQL 映射生成器(mapper.xml) 的属性
targetPackage 生成sql映射文件存放的包名。
targetProject:指定目标项目路径 可以使用相对路径或绝对路径 -->
<sqlMapGenerator targetPackage="resources\mapper"
targetProject="src\main">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- javaClientGenerator 用于配置Java客户端生成器(mapper 接口)的属性 该标签有三个属性
type: 用于选择客户端代码生成器 默认提供了以下几种方式
ANNOTATENMAPPER :基于注解的Mapper 接口,不会有对应的XML 映射文件
MIXEDMAPPER:XML 和注解的混合形式
XMLMAPPER :所有的方法都在XML 中,接口的调用依赖XML文件 (推荐使用该方式)
targetPackage:mapper接口存放的包名
targetProject:指定目标项目路径 可以使用相对路径或绝对路径 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.vclog.persistence.mapper"
targetProject="src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<!-- table 标签是最重要的一个标签,该标签用于配置需要通过内省数据库的表,只有在table 中配置过的表,才能经过上述其他配置生成最终的代码
其中 tableName 是一个必选的属性, 该属性指定要生成的表明,可以使用SQL 通配符匹配多个表 ( 例如 <table tableName="%"></table>)
table 标签中的属性
domainObjectName : 指定生成对象的基本名称,如果没有指定,则自动根据表明生成
-->
<table tableName="T_Table_Name" domainObjectName="Name"></table>
</context>
</generatorConfiguration>
使用maven plugin 运行生成 代码
1.添加依赖
2. 对pom.xml 进行插件配置
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<!-- <dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.5</version>
</dependency>
</dependencies>-->
</plugin>
</plugins>
</build>
需要说明的一点,由于在配置文件中已经指定了本地的jdbc 数据库驱动的jar地址,所以在插件配置中,将数据库依赖给注释了 ,实际上也是可以在插件配置中指定数据依赖来实现驱动的指定
配置好插件后 使用maven 命令:
mvn mybatis-generator:generate
git mybatis 代码生成工具生成代码
更多推荐
使用mybatis 代码生成器生成基础的mapper ,model
发布评论