jbase设计的时候就抽取了IDbFactory接口,支持不同数据库只要配置该接口实现类即可,那么就用IRIS测试下多数据库支持。
首先从IRIS安装目录拷贝jar包
然后实现数据库驱动接口
package LIS.Dal.Base;
import LIS.Core.MultiPlatform.LISConfigurtaion;
import LIS.Core.Util.Convert;
/**
* 支持连IRIS库
*/
public class IRISBase implements LIS.DAL.ORM.DBUtility.IDbFactory {
/**
* 得到数据库类型
*
* @return
*/
public String GetStrDbType() {
return "iris";
}
/**
* 得到数据库连接串,先写死,后面从配置取
*
* @return
*/
public String GetConnectionString() throws Exception {
System.out.println("连接串:"+ LISConfigurtaion.Configuration("ConnectionString"));
return LISConfigurtaion.Configuration("ConnectionString");
}
/**
* 得到数据库用户名
*
* @return
*/
public String GetUserName() throws Exception {
return LISConfigurtaion.Configuration("UserName");
}
/**
* 得到数据库密码
*
* @return
*/
public String GetUserPass() throws Exception {
return LISConfigurtaion.Configuration("UserPass");
}
/**
* 得到返回查询的RowID的SQL语句,供插入数据得到RowID用
*
* @return
*/
public String GetReturnRowIDSql() {
return " RETURNING \"RowID\"";
}
/**
* 处理表名称,用来适配不同数据库间的属性命名差异
*
* @param tableName 表名
* @return
*/
public String DealTableName(String tableName) {
return tableName;
}
/**
* 处理属性名字
*
* @param propertyName 属性名字
* @return
*/
public String DealPropertyName(String propertyName) {
return propertyName;
}
/**
* 处理Sql参数
*
* @param propertyName 属性名字
* @return
*/
public String DealSqlPara(String propertyName) {
return "?";
}
/**
* 加载驱动
*
* @return
*/
public String GetDriver() {
System.out.println("qqq");
return "com.intersystems.jdbc.IRISDriver";
}
/**
* 得到初始化连接串大小
*
* @return
*/
public int GetInitPoolSize() throws Exception {
String initSize = LISConfigurtaion.Configuration("PoolInitPoolSize");
return Convert.ToInt32(initSize);
}
/**
* 得到最大连接串大小
*
* @return
*/
public int GetMaxPoolSize() throws Exception {
String maxSize = LISConfigurtaion.Configuration("PoolMaxPoolSize");
return Convert.ToInt32(maxSize);
}
}
然后配置容器实现类
然后改连接串
运行测试
就这么简单,支持IRIS,为啥拿IRIS测试,因为别的库的表我就是导的IRIS的表,不需要再给其他库导表啊