我只给PostGreSql和iris写了连接驱动,永国的库是Cache,他就自己写了个驱动,驱动其实就是把数据库差异接口抽取了出来,然后只要配对应数据库驱动就能连响应的数据库了。
package JRT.Dal.Base;import JRT.Core.MultiPlatform.JRTConfigurtaion;
import JRT.Core.Util.Convert;public class CacheBase implements JRT.DAL.ORM.DBUtility.IDbFactory {/*** 得到数据库类型** @return*/public String GetStrDbType() {return "cache";}/*** 得到数据库连接串,先写死,后面从配置取** @return*/public String GetConnectionString() throws Exception {System.out.println("连接串:"+ JRTConfigurtaion.Configuration("ConnectionString"));return JRTConfigurtaion.Configuration("ConnectionString");}/*** 得到数据库用户名** @return*/public String GetUserName() throws Exception {return JRTConfigurtaion.Configuration("UserName");}/*** 得到数据库密码** @return*/public String GetUserPass() throws Exception {return JRTConfigurtaion.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 "?";}/*** 处理top的SQL语句* @param sql* @param topNum* @return 返回拼好的topSQL*/public String DealTopSql(String sql,int topNum){return "top "+topNum+" "+sql;}/*** 加载驱动** @return*/public String GetDriver() {return "com.intersys.jdbc.CacheDriver";}/*** 得到初始化连接串大小** @return*/public int GetInitPoolSize() throws Exception {String initSize = JRTConfigurtaion.Configuration("PoolInitPoolSize");return Convert.ToInt32(initSize);}/*** 得到最大连接串大小** @return*/public int GetMaxPoolSize() throws Exception {String maxSize = JRTConfigurtaion.Configuration("PoolMaxPoolSize");return Convert.ToInt32(maxSize);}}