您的位置:首页 > 数据库

MSSQL2000的官方JDBC在应用动态代理机制遇到的异常问题解决

2004-05-20 15:57 543 查看
欧自己做了个连接池。主要参考了这篇文章:使用JAVA中的动态代理实现数据库连接池。可是里面的proxy机制,对于Microsoft sql2000的官方jdbc会导致classcastexcption的异常。网上看到过,据说Weblogic提供的sqlserver的jdbc也一样。
下面的代码,在Microsoft sql2000的官方jdbc通不过。
public java.sql.Connection getConnection()
{ return (java.sql.Connection)Proxy.newProxyInstance( conn.getClass().getClassLoader(),
conn.getClass().getInterfaces(),
this); }

可能和jdbc驱动有关系吧。后来只能想了个笨办法, 自己做了一个EnhydraboyPooledConnection类。
public final class EnhydraboyPooledConnection implements Connection {
private Connection conn=null;

public EnhydraboyPooledConnection(Connection conn) {
this.conn=conn;
}
public Statement createStatement() throws SQLException {
return conn.createStatement();
}
....
}
把java.sql.connection接口的方法都实现一遍,也简单,就调用conn.方法就可以了。
DatasourceImpl里面,在创建代理连接(_Connection类)对象实例的地方,都写成这样
Connection cn=newConnection();
_Connection conn=new _Connection(new EnhydraboyPooledConnection(cn),false,i);

这样就好了,没搞明白,到底SQLServer jdbc驱动出了什么毛病。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: