Mybatia Oracle逆向工程并修改Nvarchar2类型不识别问题

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>

七.重新逆向工程

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值