mybatis oracle生成注释,Mybatis实践--Mybatis Generator 获取不到字段注释

前言

环境限制,暂时只提供Oracle和Mysql的解决方法,其它数据库如果遇到同样问题,原理是一样的,具体就看该数据库应当去配置哪个属性.

解决方法

下面的配置均指的是Mybatis Generator 的配置文件(一般是叫generatorConfig.xml)的配置:

Oracle 数据库

connectionURL="{url}" userId="${username}" password="${password}">

MySql 数据库

方法1

connectionURL="{url}" userId="${username}" password="${password}">

方法2

mysql的connectionURL中添加 useInformationSchema=true.大体上就是:

connectionURL="jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&useInformationSchema=true"

两种方法任选其一.

详解

MBG访问数据库也是通过JDBC进行,而通过JDBC连接Oracle、Mysql(其它数据库暂不清楚)时,想获取到表及字段注释是需要额外设置一些连接属性的.一般大体上都是如下的代码(以Oracle为例):

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中找到:

//以下代码来自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 (点击查看) 一节中 子元素的说明:

(0..N) Note: any properties specified here will be added to the properties of the JDBC driver.

那么在配置文件中我们如下改动即可:

connectionURL="{url}" userId="${username}" password="${password}">

其它相关

原始实例

1 目录

137b268bf5c0756e9e50d1dc9f40975e.png

2 generate.bat

java -jar mybatis-generator-core-1.3.7.jar -configfile generator_oracle.xml -overwrite

3 generator_oracle.xml

userId="USER" password="PASS">

enableDeleteByExample="false" enableDeleteByPrimaryKey="false" enableSelectByPrimaryKey="false" enableSelectByExample="false" selectByExampleQueryId="false"

enableInsert="true"

>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值