Mybatia逆向工程
一.建一个maven项目,修改pom文件
1.项目结构
2.pom基本配置
<build>
<finalName>createmybatis</finalName>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<dependencies>
<dependency>
<groupId>org.zenframework.z8.dependencies.commons</groupId>
<artifactId>ojdbc6</artifactId>
<version>2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
</dependencies>
<configuration>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>
二.添加配置文件: generatorConfig.xml
<?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>
<!-- (连接MySQL找不到驱动时使用,引入本地MySQL驱动)<classPathEntry location="D:\\javaworkspace\\createmybatis3\\mysql-connector-java-5.1.21.jar"/>-->
<context id="context1" targetRuntime="MyBatis3">
<!-- 注释 -->
<commentGenerator>
<!-- 是否取消注释 -->
<property name="suppressAllComments" value="true"/>
<!-- 是否生成带时间戳的注释 -->
<property name="suppressDate" value="true" />
</commentGenerator>
<!-- 配置数据库连接 -->
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@地址:1521:SID"
userId="用户名"
password="密码" />
<!-- javaBean生成的位置 -->
<javaModelGenerator targetPackage="org.open.system.model" targetProject="src/main/java" />
<!-- 指定dao接口生成的位置 -->
<sqlMapGenerator targetPackage="org.open.system.dao" targetProject="src/main/resources" />
<!-- 指定mapper生成的位置 -->
<javaClientGenerator targetPackage="org.open.system.dao" targetProject="src/main/java" type="XMLMAPPER" />
<!-- 指定表名及转换后的实体名,将与生成示例相关选项设置为fales-->
<table tableName="表面" domainObjectName="实体名" enableCountByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
enableUpdateByExample="false">
<!-- 和表字段名称一致:false -->
<property name="useActualColumnNames" value="false" />
</table>
</context>
</generatorConfiguration>
三.配置IDEA启动项并生成文件
mybatis-generator:generate -e
解决不支持Nvachar2类型,无法转为String问题
一.问题展示:
二.下载源码:
地址:https://github.com/mybatis/generator
三.解压压缩包导入IDEA修改源码包,添加自定义类型转换
public class MyJavaTypeResolver extends JavaTypeResolverDefaultImpl {
/**
* 把数据库的 OTHER 映射成 String,jdbcTypy改为VARCHAR
* 原因:
* 如果把jdbcTypy改为NVARCHAR2,生成的mapper文件的jdbcType=NVARCHAR2
* mybatis并不能识别,因为mybatis配置中并没有NVARCHAR2这个类型
*/
public MyJavaTypeResolver() {
super();
super.typeMap.put(Types.OTHER, new JdbcTypeInformation("VARCHAR",
new FullyQualifiedJavaType(String.class.getName())));
}
}
四.编译,并取出编译后的class文件
五.找到本地maven仓库中的jar包并添加文件
六.修改generatorConfig.xml引入配置
<javaTypeResolver
type="org.mybatis.generator.internal.types.MyJavaTypeResolver">
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
七.重新逆向工程