您的位置:首页 > 数据库

MyBatis-自定义数据库厂商ID

2016-12-11 18:07 477 查看

说明

此处只为测试自定义是否好用,因为电脑上没有除了MyBatis指定的数据库,要测试只能自己下载,比较麻烦,常用而没有内置的有postgresql等,有空装了再测试。下面定义的PostgreSQL也不知道对不对~

步骤

1.建IDatabaseIDProvider

2.指定
<databaseIdProvider>
的type属性

需要实现DatabaseIdProvider接口,代码如下:

import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.ibatis.mapping.DatabaseIdProvider;

public class IDatabaseIDProvider implements DatabaseIdProvider{
private Properties p=null;
@Override
public String getDatabaseId(DataSource arg0) throws SQLException {
String dataName=arg0.getConnection().getMetaData().getDatabaseProductName();
String databaseId=(String) this.p.get(dataName);
return databaseId;
}
@Override
public void setProperties(Properties arg0) {
// TODO Auto-generated method stub
this.p=arg0;
}

}


<databaseIdProvider type="com.yan.databaseID.IDatabaseIDProvider">
<property name="SQL Server" value="sqlserver"/>
<property name="MySQL" value="mysql"/>
<property name="DB2" value="db2"/>
<property name="Oracle" value="oracle"/>
<property name="PostgreSQL" value="postgresql"/>
</databaseIdProvider>


测试

因为我使用的是mysql,使用sqlSessionFactory.getConfiguration().getDatabaseId()方法得到的输出就是对应的value值mysql。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息