package com.yunchow.util;
import java.sql.*;
import java.lang.reflect.*;
/**
* connection处理器
* @author yunchow
* @version 1.2 09/8/6
*/
class MyConnection implements InvocationHandler {
/** 目标对象 */
private Connection targetConnection;
/** 代理对象 */
private Connection proxyConnection;
MyConnection(Connection conn) {
targetConnection = conn;
}
/**
* 释放一个连接资源
*/
void release() {
try {
if(targetConnection != null)
targetConnection.close();
//System.out.println("清除成功\t" + targetConnection.createStatement());
} catch(Exception ex) {
ex.printStackTrace();
}
}
Connection getProxy() {
proxyConnection = (Connection)Proxy.newProxyInstance(this.getClass().getClassLoader(),
new Class[]{Connection.class, DBSourceRelease.class},this);
return proxyConnection;
}
public Object invoke(Object proxy,Method method,Object[] args)
throws Throwable {
if("close".equals(method.getName())){ // 截获close方法
MyDataSource.rebackConnection(proxyConnection);
return null;
} else if("release".equals(method.getName())) {
release();
return null;
}
return method.invoke(targetConnection, args);
}
}
分享到:
相关推荐
代码如下:Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0 很明显这是连接初始化阶段就丢失了连接的错误。 google半天大多是说的注释掉配置文件中 bind-address = ...
由于 java.sql.Connection 本身是一个接口,因此我们可以使用动态代理机制来拦截 Connection 对象上的所有方法调用,包括 close 方法。 通过使用 JAVA 中的动态代理机制,我们可以实现一个高效、灵活的数据库连接池...
java 多项目代理,HttpUrl,代理服务器,Connection
以下是本文档中的内容,大家看清了再下,不然又会说下重复了,呵呵 ...第5 章:代理 第6 章:Microsoft Office 文档 第7 章:计划表管理 第8 章:活动管理 附录A:对Cognos Connection 进行故障排除
q-connection, 使用承诺与远程对象异步通信的JavaScript库 异步远程对象这个库使得对象能够在内存独立的JavaScript上下文之间异步地进行通信,包括与结果之间的。 承诺充当远程对象的代理。在节点和其他CommonJS的...
很多公司是通过网络代理上网的,这里讲的就是网络代理的设置方法,图文并茂,很容易操作的
添加代理镜像,解决Android Studio出现Gradle sync failed: Connection timed out: connect
SOCKS5连接示例 SOCKS5代理服务器的连接示例。 如有疑问: : 编译... 视窗... gcc.exe socks5.c -o socks -lws2_32 -std=c99 Linux ... gcc socks5.c -o socks5 -std=c99
amqplib的连接管理。 amqp连接管理器 这是围绕的包装程序,它... 每当当前连接的代理死亡时,amqp-connection-manager将重新连接到新的代理。 当您向amqp-connection-manager询问一个通道时,您指定一个或多个要运行的
titanium-connection-test -p [proxy url]代理 url 的格式应为“ ”指定根证书如果您的代理受 SSL 保护,并且代理的证书不受信任,则您可能需要指定根 CA 证书: titanium-connection-test -c [p
数据连接池的工作机制:J2EE服务器启动时会建立一定数量的池连接,并...实现方式,返回的Connection是原始Connection的代理,代理Connection的close方法不是真正关连接,而是把它代理的Connection对象还回到连接池中。
还是利用我在文章《使用JAVA动态代理实现数据库连接池》中使用的动态接口代理技术。首先我们设计Connection接口的代理类_Connection,这个代理类接管了Connection接口中所有可能获取到Statement或者...
2.2、针对NSURLSessionConfiguration设置代理IP和端口,让一些特殊的请求走自定义的隧道IP和端口 2.3、对网络请求的数据进行报文级别的加密:使用NSURLProtocol来自动监听HTTP请求并加密解密。 通过[NSURLProtocol ...
MVC框架,加注解,Struts框架的思想,动态代理,线程管理对象ThreadLocal,Connection对象池,Properties文件读取,EL表达式,JSTL,JavaBean,Java访问MySQL数据库,增删改查... ---------------------------------...
网上说的什么只需要在请求头中加verify=False,完美解决的什么话,根本试了没用好吧,还有安装几个request辅助模块的方法,也试过了,没有用。。。首先这个error是时有时无的,所以我就想到了用多次循环来进行...
数据库连接池在编写应用服务是...但是另外一个共同的问题是,它们同时不允许使用者显式的调用Connection.close()方法,而需要用其规定的一个方法来关闭连接。这种做法有两个缺点: 第一:改变了用户使用习惯,增
在Nginx反向代理一个带有WebSocket功能的Spring Web程序(源代码地址 )时,发现访问WebSocket接口时总是出现403响应,Nginx的配置参考的是 官方文档 : http { // ssl 相关配置 ... map $http_upgrade $...
继承的方式可以通过继承 Connection 类来实现,装饰者模式可以通过包装 Connection 对象来实现,动态代理可以通过代理 Connection 对象来实现。 在使用连接池时,需要注意一些问题,例如连接池的大小、连接的生命...
能通过代理请求的jsoup Connection connection = Jsoup.connect(url).userAgent(userAgent).proxy(ip,port).execute()
db-connection-proxy 代理可将查询同时发送到多个数据库先决条件: 莫纳德图书馆吊火重新思考数据库