- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Mybatis Generator 获取不到字段注释的解决由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
环境限制,暂时只提供Oracle和Mysql的解决方法,其它数据库如果遇到同样问题,原理是一样的,具体就看该数据库应当去配置哪个属性. 。
下面的配置均指的是Mybatis Generator 的配置文件(一般是叫generatorConfig.xml)的配置
1
2
3
4
5
|
<jdbcConnection driverClass=
"${driver}"
connectionURL=
"{url}"
userId=
"${username}"
password
=
"${password}"
>
<!
-- 针对oracle数据库 -->
<property
name
=
"remarksReporting"
value=
"true"
></property>
</jdbcConnection>
|
方法1 。
1
2
3
4
5
|
<jdbcConnection driverClass=
"${driver}"
connectionURL=
"{url}"
userId=
"${username}"
password
=
"${password}"
>
<!
-- 针对mysql数据库 -->
<property
name
=
"useInformationSchema"
value=
"true"
></property>
</jdbcConnection>
|
方法2 。
mysql的connectionURL中添加 useInformationSchema=true.大体上就是
1
|
connectionURL=
"jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&useInformationSchema=true"
|
两种方法任选其一. 。
MBG访问数据库也是通过JDBC进行,而通过JDBC连接Oracle、Mysql(其它数据库暂不清楚)时,想获取到表及字段注释是需要额外设置一些连接属性的.一般大体上都是如下的代码(以Oracle为例)
1
2
3
4
|
Properties props =newProperties();
props.put(
"remarksReporting"
,
"true"
);//Oracle
dbConn = DriverManager.getConnection(url, props);
DatabaseMetaData dbmd = dbConn.getMetaData();
|
这样通过JDBC就能获取到表或者字段的注释了. 。
那么在MBG中怎么设置呢?总不能去改源码吧.其实MBG自身已经提供了解决方法. 。
我们先来看下MBG连接数据库的代码,可以在org.mybatis.generator.internal.JDBCConnectionFactory中找到
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
//以下代码来自Mybatis Generator 1.3.5
/**
* This constructor is called when there is a JDBCConnectionConfiguration
* specified in the configuration.
*
* @param config
*/
public
JDBCConnectionFactory(JDBCConnectionConfiguration config) {
super
();
userId = config.getUserId();
password = config.getPassword();
connectionURL = config.getConnectionURL();
driverClass = config.getDriverClass();
otherProperties = config.getProperties();
//注意此行
}
public
Connection getConnection()
throws
SQLException {
Driver driver = getDriver();
Properties props =
new
Properties();
if
(stringHasValue(userId)) {
props.setProperty(
"user"
, userId);
//$NON-NLS-1$
}
if
(stringHasValue(password)) {
props.setProperty(
"password"
, password);
//$NON-NLS-1$
}
props.putAll(otherProperties);
//注意此行
Connection conn = driver.connect(connectionURL, props);
if
(conn ==
null
) {
throw
new
SQLException(getString(
"RuntimeError.7"
));
//$NON-NLS-1$
}
return
conn;
}
|
通过上面代码(尤其是我加了注意此行注释的两行代码)我们可以看到,MBG在建立连接时,是把JDBCConnectionConfiguration中的所有properties给设置进去了.那么显然我们只需要找到在哪配置这些properties就行了. 。
JDBCConnectionConfiguration对应到XML配置里就是jdbcConnection节点. 。
再来看看官方的使用文档,官方文档关于jdbcConnection (点击查看) 一节中 <property>子元素的说明
<property> (0..N) Note: any properties specified here will be added to the properties of the JDBC driver. 。
那么在配置文件中我们如下改动即可
1
2
3
4
5
|
<jdbcConnection driverClass=
"${driver}"
connectionURL=
"{url}"
userId=
"${username}"
password
=
"${password}"
>
<!
-- 针对oracle数据库 -->
<property
name
=
"remarksReporting"
value=
"true"
></property>
</jdbcConnection>
|
关于如何生成自定义注释,参见 mybatis-generator自定义注释生成 。
打jar包 。
git clone https://github.com/backkoms/mybatis-generator-comments.git 。
编译打包,install到本地或delopy私服库中均可.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<
plugin
>
<
groupId
>org.mybatis.generator</
groupId
>
<
artifactId
>mybatis-generator-maven-plugin</
artifactId
>
<
version
>${plugins-mybatis-generator.version}</
version
>
<
configuration
>
<
verbose
>true</
verbose
>
<
overwrite
>true</
overwrite
>
</
configuration
>
<
dependencies
>
<
dependency
>
<
groupId
>com.haier.hairy</
groupId
>
<
artifactId
>mybatis-generator-core</
artifactId
>
<
version
>1.0.1</
version
>
</
dependency
>
</
dependencies
>
</
plugin
>
|
1
2
3
4
5
|
<
commentGenerator
type
=
"org.mybatis.generator.internal.CustomeCommentGenerator"
>
<
property
name
=
"javaFileEncoding"
value
=
"UTF-8"
/>
<
property
name
=
"suppressDate"
value
=
"true"
/>
<
property
name
=
"suppressAllComments"
value
=
"false"
/>
</
commentGenerator
>
|
执行命令:mvn mybatis-generator:generate 。
查看执行生成文件 。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/qq_21251983/article/details/52849079 。
最后此篇关于Mybatis Generator 获取不到字段注释的解决的文章就讲到这里了,如果你想了解更多关于Mybatis Generator 获取不到字段注释的解决的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
1.概述 转载:MyBatis 二级缓存全详解 上一篇文章中我们介绍到了 MyBatis 一级缓存其实就是 SqlSession 级别的缓存,什么是 SqlSession 级别的缓存呢?一级缓存的本质
1.概述 转载:核心配置综述之StatementHandler 2.MyBatis 四大组件之StatementHandler StatementHandler 是四大组件中最重要的一个对象,负责操作
1.概述 转载:MyBatis 启动流程 MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。My
1.概述 转载:MyBatis 基础搭建及架构概述 2.MyBatis 是什么? MyBatis是第一个支持自定义SQL、存储过程和高级映射的类持久框架。MyBatis消除了大部分JDBC的样板代码、
1.概述 转载:核心配置综述之 ParameterHandler MyBatis 四大核心组件我们已经了解到了两种,一个是 Executor ,它是MyBatis 解析SQL请求首先会经过的第一道关卡
1.概述 转载:核心配置综述之 ResultSetHandler 我们之前介绍过了MyBatis 四大核心配置之 Executor、StatementHandler、 ParameterHandler
如果我使用mybatis,我可以很容易地得到更新的行数,就像 update table set desc = 'xxx' where name = ? 但是,如果我想获取更新的行数,而不是计数,我该如
如何在MyBatis 3中使用小于等于 SELECT * FROM( SELECT * FROM TABLE1 WHERE COL1 =#{COL1,jdbc
我将 mybatis3.0.6 与 java 一起使用 哪个性能更好? [select id="getData" parameterType="Integer" resultType="Integer
我无法在 mybatis 中使用动态排序类型创建 SQL,如下例 select user_profile.user_profile_id, user_profile.first_name
这是一个流行的例子。 insert into ACCOUNT ( ACC_ID, ACC_FIRST_NAME, ACC_LAST_NAME, ACC_EMAIL )values (
我下载了MyBatis,文件夹中有一个mybatis-3.0.4-javadoc.jar,我解压并打开它,但它几乎是空的。 哪里可以找到MyBatis的API文档? 最佳答案 http://repo1
我正在尝试为 ArrayList 编写类型处理程序,但这给了我错误,任何人都可以帮助我。 我想将 ArrayList 作为 VARCHAR 存储在数据库中并将其检索为 ArrayList。 packa
目录 依赖 配置 CodeGenerator mybatis-plus-generator + clickhouse 自动生成代码 依赖
目录 三者实现对比 使用fluent mybatis 来实现上面的功能 换成mybatis原生实现效果 换成mybatis plus
例如,我有查询从员工中选择 ID、姓名、年龄、地址,而不是拥有员工对象列表。我希望有一个 map 列表,如 list{ map{ ("id", 123), ("name","jac
我在使 MyBatis (3.4.6) 工作时遇到一些麻烦。 我已将 mybatis-config.xml 文件放置在项目的 src/main/resources 文件夹中,但是当我运行单元测试时,出
我现在使用 Mybatis 和 spring-boot。我没有添加mybatis-config.xml。我根据说明通过 application.properties 为数据源和 mybatis 进行所
这是我的第一篇文章,用我糟糕的英语...... 我使用的是MyBatis3.0 在查询中,我使用 SqlBuilder 的方法如下: public class DataStatisticSqlBuil
主题:MyBatis:Boolean Paraeter:MyBatis 正在使用 Getter 内容: 大家好, 我一直在寻找解决我近乎简单的 MyBatis 问题的方法: 给定代码(仅必要部分):
我是一名优秀的程序员,十分优秀!