基于前一个博客搭建的SSM框架

https://www.cnblogs.com/jiangyuqin/p/9870641.html

源码:https://github.com/JHeaven/ssm-easy-demo

实现基于oracle数据库集成tkmybatis 和 gengerator自动生成代码

先看下完成之后的目录结构

首先pom.xml里面引入相应的包和插件

      <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</atifactId>
<version>${tkmybatis.version}</version>
</dependency>

引入插件包的时候,注意标签的位置,观察和pluginManagement标签的相对位置。搞错了可是出不来的,我尽量给出较多的代码给大家参考。

 <build>
<finalName>ssm-sc</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin> </plugins>
</pluginManagement>
<plugins>
<!-- 自动生成代码插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>${mybatis.generator.version}</version>
<configuration>
<configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration> <dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>${mybatis.generator.version}</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>${oracle.version}</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>${tkmybatis.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>

还得在pom.xml里面设置一些变量,主要是给自动生成代码的配置文件generatorConfig.xml用的,具体是啥看generatorConfig.xml里面的注释。

 <!-- MyBatis Generator -->
<mybatis.generator.version>1.3.7</mybatis.generator.version>
<tkmybatis.version>4.0.4</tkmybatis.version> <mapper.plugin>tk.mybatis.mapper.generator.MapperPlugin</mapper.plugin>
<mapper.Mapper>com.jiangyuqin.utils.MyMapper</mapper.Mapper> <ModelTargetPackage>com.jiangyuqin.model</ModelTargetPackage>
<ModelTargetProject>src/main/java</ModelTargetProject> <sqlMapperTargetPackage>mapper</sqlMapperTargetPackage>
<sqlMapperTargetProject>src/main/resources</sqlMapperTargetProject> <clientTargetPackage>com.jiangyuqin.mapper</clientTargetPackage>
<clientTargetProject>src/main/java</clientTargetProject>

新建自己的mapper类,用来被自动生成的mapper继承,注意这个类需要被放到不可扫描到的位置。

 package com.jiangyuqin.utils;

 import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper; /**
* 基础 mapper
* 不可被扫描到
* BaseMapper<T>
* MySqlMapper<T>
* IdsMapper<T>
* ConditionMapper<T>
* ExampleMapper<T>
* @param <T>
*/
public interface MyMapper<T> extends Mapper<T>,MySqlMapper<T> { }

新建配置文件

 <?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="generator/db.properties"/> <context id="Oracle" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<!-- TKmybatis配置 -->
<property name="javaFileEncoding" value="UTF-8"/>
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<plugin type="${mapper.plugin}">
<property name="mappers" value="${mapper.Mapper}"/>
</plugin> <commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- 数据库链接URL、用户名、密码 -->
<jdbcConnection driverClass="${db.driver}"
connectionURL="${db.url}"
userId="${db.user}"
password="${db.password}" /> <javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 生成模型的包名和位置 -->
<javaModelGenerator targetPackage="${ModelTargetPackage}" targetProject="${ModelTargetProject}" />
<!-- 生成的映射文件包名和位置 -->
<sqlMapGenerator targetPackage="${sqlMapperTargetPackage}" targetProject="${sqlMapperTargetProject}" />
<!-- 生成DAO的包名和位置 -->
<javaClientGenerator targetPackage="${clientTargetPackage}" targetProject="${clientTargetProject}" type="XMLMAPPER" />
<!-- 要生成的那些表 --> <table tableName="Z_DBA_DATASOURCE" domainObjectName="DbaDatasource" >
<generatedKey column="UUID" sqlStatement="SELECT 1 FROM DUAL" identity="true"/>
</table>
<table tableName="Z_SYS_LOG" domainObjectName="SysLog" >
<generatedKey column="UUID" sqlStatement="SELECT 1 FROM DUAL" identity="true"/>
</table>
<table tableName="Z_USR_LOGINLOG" domainObjectName="UsrLoginLog" >
<generatedKey column="UUID" sqlStatement="SELECT 1 FROM DUAL" identity="true"/>
</table>
<table tableName="Z_USR_ADMIN" domainObjectName="UsrAdmin" >
<generatedKey column="UUID" sqlStatement="SELECT 1 FROM DUAL" identity="true"/>
</table>
</context>
</generatorConfiguration>
其中table标签中sqlStatement这个参数,作废,因为oracle没有自增功能,与其去适应复杂的框架来实现妥协的不够保险的自增,还不如在java里面用UUID传参插入。
(或者以后自己写一个生成UUID的方法,暂时直接调用JAVA提供的。) db.properties就不给出了,无非就是一些数据连接。
到这基本就可以开始生成代码了。

生成就结束了。
让我们测试一下。
1.全量查询
2.插入

报错了,查看日志。

插入成功,回查UUID的时候出错了,说明我们在generatorConfig.xml中配的 sqlStatement="select 1 from dual" 没起作用
那就先手动修改吧
在实体类中,GeneratedValue注释中,添加参数 generator = "SELECT SYS_GUID() FROM DUAL",这个回传的值没有太大的意义,可以写为 select 1 from dual

尝试插入
成功。

SSM 框架基于ORACLE集成TKMYBATIS 和GENERATOR自动生成代码(Github源码)的更多相关文章

  1. IDEA Maven Mybatis generator 自动生成代码(实例讲解)(转)

    IDEA Maven Mybatis generator 自动生成代码(实例讲解) MyBatis Generator • 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的 ...

  2. MyBatis使用Generator自动生成代码

    MyBatis中,可以使用Generator自动生成代码,包括DAO层. MODEL层 .MAPPING SQL映射文件. 第一步: 配置好自动生成代码所需的XML配置文件,例如(generator. ...

  3. SpringBoot 添加mybatis generator 自动生成代码插件

    自动生成数据层代码,提高开发效率 1.pom添加插件,并指定配置文件路径 <!-- mybatis generator 自动生成代码插件 --> <plugin> <gr ...

  4. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

    原文链接 我们这一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池 ...

  5. springboot学习随笔(四):Springboot整合mybatis(含generator自动生成代码)

    这章我们将通过springboot整合mybatis来操作数据库 以下内容分为两部分,一部分主要介绍generator自动生成代码,生成model.dao层接口.dao接口对应的sql配置文件 第一部 ...

  6. generator自动生成代码

    idea设置generator自动生成代码: http://blog.csdn.net/sunny243788557/article/details/45166397

  7. idea中mybatis generator自动生成代码配置 数据库是sqlserver

    好长时间没有写博客了,最近公司要用java语言,开始学习java,属于初学者,今天主要记录一下mybatis generator自动生成代码,首先在如下图的目录中新建两个文件,如下图 generato ...

  8. IDEA Maven Mybatis generator 自动生成代码

    IDEA Maven Mybatis generator 自动生成代码 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP ...

  9. 使用Mybatis Generator自动生成代码

    MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器.它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码.它将内省数据库 ...

随机推荐

  1. Android SDK和ADT无法更新的解决办法

    重要的东西要标红: 经过另外一台电脑测试,按照第二步设置好hosts后,可以一并解决 SDK 和 ADT的更新,无需单独设置SDK Manager. 这里还是写出如何设置SDK Manager以作记录 ...

  2. Python简介及编码

    首先Python是一种语言,因此根据其实现的不同,有Cpython, Jython, IronPython, Pypy等. Python执行流程 $ python /home/hello.py     ...

  3. 沉淀,再出发:web前端的一些认识

    沉淀,再出发:web前端的一些认识 一.前言 作为程序员,我一直认为全栈是一种最基本的能力,没有了这种目标就会发现自己越往后面发展路就越窄,很多自己不了解的东西会阻塞自己去理解整个系统的开发过程和效率 ...

  4. 以太网的 MAC 层

    一.MAC 层的硬件地址 在局域网中,主机的硬件地址又称为物理地址,或 MAC 地址.6个字节. IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位,组织唯一标识符O ...

  5. 申请MVP奖励时的小Tips

    大家新年好,今天MSPrecious为大家带来一些申请MVP奖励时的小Tips.   本文分为三个部分 MVP是什么 如何申请MVP 申请MVP需要注意的事项 MVP是什么? 我想,点进来看这篇文章的 ...

  6. Excel英语成绩单

  7. web安全职位面试题目汇总

    Domain 解释一下同源策略 同源策略,那些东西是同源可以获取到的 如果子域名和顶级域名不同源,在哪里可以设置叫他们同源 如何设置可以跨域请求数据?jsonp是做什么的? Ajax Ajax是否遵循 ...

  8. jq实现多级菜单

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. SOJ 4309 Sum of xor 异或/思维

    Source ftiasch 解题思路: 本题的题解有参考这里,但是那篇年代太久远,讲的也不甚清晰,所以可能会对很多新手造成困扰,所以又写了这一篇. 亦或有很多规律,本题使用到的是n^(n+1)=1, ...

  10. Hadoop学习之路(二十七)MapReduce的API使用(四)

    第一题 下面是三种商品的销售数据 要求:根据以上数据,用 MapReduce 统计出如下数据: 1.每种商品的销售总金额,并降序排序 2.每种商品销售额最多的三周 第二题:MapReduce 题 现有 ...