mybatis(oracle) generatorConfig 自动生成代码详解

时间:2024-03-20 19:09:25

今天用到mybatis连接orcale数据库,一前一直用的是MySQL,对orcale没有太多的了解,来谈谈今天遇到的几个坑(首先提一点的是这个方法只试用于自己用户下没有数据库,自己用户要用到别的用户的数据库)

第一:

      报错找不到 oracle.jdbc.driver.OracleDriver,这是因为orcale是收费的,maven下载不了这个驱动,这个问题请自行百度,这里不做过多介绍

第二:

        因为要用到数据库中的实体类,就想到了mybatis的generatorConfig,自动生成eneity,mapper,mapper.xml

首先我用的是eclipse要下载generatorConfig这个插件,其他IDE和方法大同小异,这里介绍一个简单的

Help---->Eclipse Marketplace...

mybatis(oracle) generatorConfig 自动生成代码详解

点击右下角的Installed

然后在项目的根路径下新建一个generatorConfig.xml

mybatis(oracle) generatorConfig 自动生成代码详解

然后复制下面内容

<?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>
<!-- 引入配置文件 -->
<properties resource="init.properties" />


<!-- 指定数据连接驱动jar地址 -->
<classPathEntry location="${classPath}" />


<!-- 一个数据库一个context -->
<context id="infoGuardian">
<!-- 注释 -->
<commentGenerator>
<property name="suppressAllComments" value="true" /><!-- 是否取消注释 -->
<property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳 -->
</commentGenerator>


<!-- jdbc连接 -->
<jdbcConnection driverClass="${jdbc_driver}"
connectionURL="${jdbc_url}" userId="${jdbc_user}"
password="${jdbc_password}" />


<!-- 类型转换 -->
<javaTypeResolver>
<!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>


<!-- 生成实体类地址 -->
<javaModelGenerator
targetPackage="com.sjzyb.his.entity" targetProject="${project}">
<!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
<property name="enableSubPackages" value="false" />
<!-- 是否针对string类型的字段在set的时候进行trim调用 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>


<!-- 生成mapxml文件 -->
<sqlMapGenerator
targetPackage="com.sjzyb.his.mapperxml" targetProject="${project}">
<!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>


<!-- 生成mapxml对应client,也就是接口dao -->
<javaClientGenerator
targetPackage="com.sjzyb.his.mapper" targetProject="${project}"
type="XMLMAPPER">
<!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>


<!-- 配置表信息 -->
<!-- schema="testuser" -->
<table  tableName="DRUG_INVENTORYSETTING"
domainObjectName="DRUG_INVENTORYSETTING" enableCountByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
enableUpdateByExample="false">
<!-- schema即为数据库名 tableName为对应的数据库表 domainObjectName是要生成的实体类 enable*ByExample 
是否生成 example类 -->


<!-- 忽略列,不生成bean 字段 -->
<ignoreColumn column="FRED" />
<!-- 指定列的java数据类型 -->
<columnOverride column="LONG_VARCHAR_FIELD"
jdbcType="VARCHAR" />
</table>
</context>

</generatorConfiguration>

下面是配置文件

mybatis(oracle) generatorConfig 自动生成代码详解

注意提前要下载一个oracle的驱动包到你的磁盘里

注意你的generatorConfig.xml中

mybatis(oracle) generatorConfig 自动生成代码详解

注意:没有scheam这个属性

注意:tableName与你的数据库名一定相同