Project: Amoeba-for-Aladdin
package com.meidusa.amoeba.jdbc;
 
import java.sql.Connection; 
import java.sql.Driver; 
import java.sql.DriverPropertyInfo; 
import java.sql.SQLException; 
import java.util.Properties; 
 
 
import com.alibaba.china.jdbc.common.CharsetParameter; 
import com.alibaba.china.jdbc.factory.ProxyFactory; 
 
/**
 * <pre> 
 * Oracle JDBC DriverwrapperҪת 
 * :Class.forName("com.alibaba.china.jdbc.SimpleDriver")  
 * URLӸʽ:jdbc:oracle:thin:@10.0.65.55:1521:ocndb 
 * </pre> 
 *  
 * @author hexianmao 2007  6 11:38:25 
 */
 
public class DriverWrapper implements Driver { 
 
    private ProxyFactory factory = new com.alibaba.china.jdbc.factory.SimpleProxyFactory(); 
 
    private Driver driver; 
 
    private String clientEncoding; 
 
 private String serverEncoding; 
  
    public String getClientEncoding() { 
  return clientEncoding; 
 
 
 
 public void setClientEncoding(String clientEncoding) { 
  this.clientEncoding = clientEncoding; 
 
 
 
 public String getServerEncoding() { 
  return serverEncoding; 
 
 
 
 public void setServerEncoding(String serverEncoding) { 
  this.serverEncoding = serverEncoding; 
 
  
    public ProxyFactory getFactory() { 
  return factory; 
 
 
 
 public Driver getDriver() { 
  return driver; 
 
 
 
 public void setFactory(ProxyFactory factory) { 
  this.factory = factory; 
 
 
 
 public void setDriver(Driver driver) { 
  this.driver = driver; 
 
 
 
 public DriverWrapper(){ 
    } 
 
 
    /**
     * <pre> 
     * ǷΪԴ򿪵 URL ӡ 
     * ע÷#DriverManager.getDriver(String)бãȡӦdriver 
     * </pre> 
     */
 
    public boolean acceptsURL(String url) throws SQLException { 
        return driver.acceptsURL(url); 
    } 
 
    /**
     * ͼһ URL ݿӡ 
     */
 
    public Connection connect(String url, Properties info) throws SQLException { 
        Properties p = new Properties(); 
        p.putAll(info); 
        Connection conn = driver.connect(url, p); 
 
        CharsetParameter param = new CharsetParameter(); 
        param.setClientEncoding(this.getClientEncoding()); 
        param.setServerEncoding(this.getServerEncoding()); 
        return factory.getConnection(param, conn); 
    } 
 
    /**
     * 汾š 
     */
 
    public int getMajorVersion() { 
        return driver.getMajorVersion(); 
    } 
 
    /**
     * ôĴΰ汾š 
     */
 
    public int getMinorVersion() { 
        return driver.getMajorVersion(); 
    } 
 
    /**
     * ôĿϢ 
     */
 
    public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException { 
        return driver.getPropertyInfo(url, info); 
    } 
 
    /**
     * Ƿһ JDBC CompliantTM  
     */
 
    public boolean jdbcCompliant() { 
        return driver.jdbcCompliant(); 
    } 
 
}