mybatis oracle生成注释,MyBatis Generator生成Oracle数据库对应实体类时无法获取注释问题...
最近在利用mybatis generator生成Oracle数据库对应的实体类时发现一个问题,特此记录下。
因为项目使用到了swagger2,所以想在生成实体类时通过表注释和字段注释生成对应的@ApiMode和@ApiModelProperty等注解。但是发现没有效果,经过查看源码发现OracleDatabaseMetaData类会判断remarksReporting属性的值是否为true,当为ture时才会获取注释。故只用在jdbcConnection配置中多加一条属性
即可。
源码如下:
package org.mybatis.generator.api;
public class MyBatisGenerator {
public void generate(ProgressCallback callback, Set contextIds,
Set fullyQualifiedTableNames, boolean writeFiles) throws SQLException,
IOException, InterruptedException {
// 只关注关键代码,前面代码没有复制进来
for (Context context : contextsToRun) {
// 重要的是该方法
context.introspectTables(callback, warnings,
fullyQualifiedTableNames);
}
// 后面的方法逻辑忽略
}
}
package org.mybatis.generator.config;
public class Context extends PropertyHolder {
public void introspectTables(ProgressCallback callback,
List warnings, Set fullyQualifiedTableNames)
throws SQLException, InterruptedException {
// 前面的方法逻辑忽略 重要的是databaseIntrospector.introspectTables方法
List tables = databaseIntrospector.
.introspectTables(tc);
if (tables != null) {
introspectedTables.addAll(tables);
}
}
}
package org.mybatis.generator.internal.db;
public class DatabaseIntrospector {
public List introspectTables(TableConfiguration tc) {
// 前面的方法逻辑忽略 重要的是 calculateIntrospectedTables方法
List introspectedTables = calculateIntrospectedTables(
tc, columns);
}
private List calculateIntrospectedTables(
TableConfiguration tc,
Map> columns) {
// 前面的方法逻辑忽略 重要的是 enhanceIntrospectedTable方法
enhanceIntrospectedTable(introspectedTable);
}
private void enhanceIntrospectedTable(IntrospectedTable introspectedTable) {
// 前面的方法逻辑忽略 重要的是 databaseMetaData.getTables方法
ResultSet rs = databaseMetaData.getTables(fqt.getIntrospectedCatalog(), fqt.getIntrospectedSchema(),
}
}
package oracle.jdbc;
public class OracleDatabaseMetaData implements AdditionalDatabaseMetaData {
// 此处没有找到oralce的源码
public synchronized ResultSet getTables(String var1, String var2, String var3, String[] var4) throws SQLException {
String var6 = " c.comments AS remarks
";
String var7 = " NULL AS remarks
";
// 可以看到此处会判断remarksReporting的值是否为true,为true才有查原注释,否则会把null值当成注释
if (this.connection.getRemarksReporting()) {
var22 = var22 + var6 + var8;
} else {
var22 = var22 + var7 + var9;
}
}
}
mybatis oracle生成注释,MyBatis Generator生成Oracle数据库对应实体类时无法获取注释问题...相关推荐
- ogg oracle 测试kafka_利用ogg实现oracle到kafka的增量数据实时同步
前言 ogg即Oracle GoldenGate是Oracle的同步工具,本文讲如何配置ogg以实现Oracle数据库增量数据实时同步到kafka中,其中同步消息格式为json. 下面是我的源端和目标 ...
- Mybatis(1)——Mybatis Generator自动生成代码
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...
- 解决表字段使用关键字导致Mybatis Generator生成代码异常的解决方案
From: http://blog.itfsw.com/2017/05/23/jiejue-biao-ziduan-shiyong-guanjianzi-daozhi-mybatis-generato ...
- Mybatis自动生成代码插件generator
Mybatis自动生成代码插件generator 1.pom maven依赖 <dependencies><dependency><groupId>org.myba ...
- IDEA中实现mybatis generator生成
generatorConfig.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYP ...
- spring boot+mybatis+generator生成domain大小写问题
之前遇到一个问题,用generator生成数据库对应的domain,以前都是好好的,那天突然生成的domain都是小写的,因为我数据库里是大写的,后来找到解决办法, <table tableNa ...
- mybatis根据表逆向自动化生成代码(自动生成实体类、mapper文件、mapper.xml文件)
若采用mybatis框架,数据库新建表,手动编写的话,需要编写大量的实体类.mapper文件.mapper.xml文件,都是一些重复且有规律的工作. 我们可以引用插件,然后做配置,自动生成这些文件,提 ...
- ORM框架之Mybatis(五)mybatis生成器配置文件说明以及生成的类的说明
一.XML配置详解 1.1 mybatis generator配置文件约束 <?xml version="1.0" encoding="UTF-8"?&g ...
- generator代码自动生成工具(动态生成注释、类注解、方法注解等)适用于swagger等需要配置实体类的场景
generator代码生成器大家都不陌生,但是在实际的业务场景中,实体类只有属性.getter/setter方法不满足需求,还需要手动去添加需要的功能.比如项目使用swagger生成api文档时,需要 ...
最新文章
- nodejs生成多层目录和生成文件的通用方法
- docker设置固定ip地址
- 三、css 和 js 的装载与执行
- zookeeper单机安装
- [Usaco2010 Mar]gather 奶牛大集会
- java架构师进阶之独孤九剑:数据结构以及书籍推荐
- 1.1 Python 安装
- 产品经理必备利器:UML
- MVC PartialView视图使用心得
- python写出函数调用关系_函数递归调用: 调用者 与 被调用者之间的四种数据传递关系...
- Linux学习笔记1-在CentOS 7中安装配置JDK8
- ctrl+d与ctrl+c
- Mac OS 下安装wget
- ArcGIS Engine开发之旅01---产品组成、逻辑体系结构
- mysql 只显示箭头_为什么在DOS窗口中使用MySQL时,输入命令后只出现一个箭头,输入什么内容都是这样?...
- Android性能优化篇——友盟U-APM云真机
- 无监督图像分类《SCAN:Learning to Classify Images without》代码分析笔记(1):simclr
- 数据分析:你的城市复工了吗?
- Windows 文件夹修改为exe的原理和解决办法
- 怎么把PDF拆分开成一张一张的
热门文章
- 【Java并发】Runnable、Callable、Future、FutureTask
- UE4 VR中一种比较清晰的UI制作方式
- 《Cisco IOS XR技术精要》一2.7 高可用架
- 8086汇编语言实现8253计时器对时且实时定点显示时间(全注释)
- 今日问题:如果开发总是延迟提测时间,该怎么办呢?
- python网格搜索优化参数_python – 是否有可能通过网格搜索调整参数scikit-learn中的自定义内核?...
- member.php?mod=register文件在哪里,DEDECMS修改member会员中心文件夹名称 更改member目录名称...
- go语言打印errors类型变量
- 剑指offer面试题[9-2]-变态跳台阶
- 3种常见的渗透测试漏洞总结,快来收藏√