基于前一个博客搭建的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. linux 下MySQL的安装

    一.安装MySQL   1.下载源码包     从mysql官网上下载linux下的source包mysql-5.0.51b.tar.gz,注意是下载GNU tar格式的,不是rpm包.    2.解 ...

  2. Python学习---列表/元组/字典/字符串/set集合/深浅拷贝1207【all】

    1.列表 2.元组 3.字典 4.字符串 5.set集合 6.深浅拷贝

  3. FTP(文件传输协议)工作原理

    目前在网络上,如果你想把文件和其他人共享.最方便的办法莫过于将文件放FTP服务器上,然后其他人通过FTP客户端程序来下载所需要的文件. 1.FTP架构 如同其他的很多通讯协议,FTP通讯协议也采用客户 ...

  4. Linux下打包压缩war、解压war包和jar命令

    情景:把project_a文件夹下的文件打包成project.war 1. 打包 jar -cvf project.war /project_a 说明: -c 创建war包 -v 显示过程信息 -f ...

  5. 51nod 1102 面积最大的矩形

    题目地址在这儿 求取:以某矩形g[i]为最小值的区间的左右端点,得到一个临时解.所有临时解中的最大值即为解. 求取区间的方法可以用单调栈,也可以用下面这种十分简洁的类似于递归的方法.下面这种解法求出来 ...

  6. IOS XMPP总结

    //前言:仿weixin实现一个即时通讯的案例,支持版本7.0以上 "准备工作 创建项目时使用git" /* 显示隐藏文件,看到git的文件夹 defaults write com ...

  7. Python的getattr(),setattr(),delattr(),hasattr()及类内建__getattr__应用

    @Python的getattr(),setattr(),delattr(),hasattr() 先转一篇博文,参考.最后再给出一个例子 getattr()函数是Python自省的核心函数,具体使用大体 ...

  8. MySQL查询时强制区分大写和小写

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zyb_icanplay7/article/details/24981791 平时非常少会考虑数据存储 ...

  9. [USACO09MAR]Sand Castle

    嘟嘟嘟 太水了,大佬们就绕道吧…… 就是m, b数组分别排个序,然后更改对应位置的m[i]和b[i],就行了. 因为如果m[i]不改为b[i]而是b[i + 1]的话,那么必定要将m[j] (j &g ...

  10. 给trac的ticket添加提交时字段验证

    我们在项目管理中使用了trac系统,并且对于ticket添加了以下自定义字段并且对它们的格式都有一定要求: svn版本号:格式为 r1234.多个版本号之间使用半角逗号隔开.如:r1234,r5678 ...