package com.nfwork.dbfound.db; import java.sql.Connection; import java.sql.SQLException; import com.nfwork.dbfound.db.dialect.DialectFactory; import com.nfwork.dbfound.db.dialect.SqlDialect; import com.nfwork.dbfound.exception.DBFoundPackageException; public abstract class ConnectionProvide { public static final String MySqlDialect = "MySqlDialect"; public static final String OracleDialect = "OracleDialect"; public static final String SqlServerDialect = "SqlServerDialect"; public static final String AccessDialect = "AccessDialect"; public static final String InformixDialect = "InformixDialect"; SqlDialect sqlDialect; // 数据库方言 String provideName = "_default"; // 单元名称 String dialect; public ConnectionProvide() { } public ConnectionProvide(String dialectName) { sqlDialect = DialectFactory.createDialect(dialectName); } public ConnectionProvide(String provideName, String dialectName) { sqlDialect = DialectFactory.createDialect(dialectName); if (provideName != null && !"".equals(provideName)) { this.provideName = provideName; } } public void regist() { if (sqlDialect == null) { sqlDialect = DialectFactory.createDialect(dialect); } ConnectionProvideManager.registSource(this); } public void unRegist() { ConnectionProvideManager.unRegistSource(this); } public void closeAutoCommit(Connection conn) { try { if (conn.getAutoCommit()) { conn.setAutoCommit(false); } } catch (SQLException e) { throw new DBFoundPackageException("closeAutoCommit异常:" + e.getMessage(), e); } } public abstract Connection getConnection(); public abstract void closeConnection(Connection connection); public String getProvideName() { return provideName; } public void setProvideName(String provideName) { this.provideName = provideName; } public String getDialect() { return dialect; } public void setDialect(String dialect) { this.dialect = dialect; } public SqlDialect getSqlDialect() { return sqlDialect; } }