mysql动态代理_动态代理连接数据库
package动态连接数据库;importjava.lang.reflect.InvocationHandler;importjava.lang.reflect.Method;importjava.lang.reflect.Proxy;importjava.sql.Connection;importjava.sql.DriverManager;importjava.util.LinkedList;public classUtilsDB {public static voidmain(String[] args) {
UtilsDB u= newUtilsDB();
System.err.println(u.getCon());
}private static LinkedList pool = new LinkedList();static{try{
Class.forName("com.mysql.jdbc.Driver");
String url= "jdbc:mysql:///abc";for (int i = 0; i < 3; i++) {//真实对象
final Connection con = DriverManager.getConnection(url, "root","1234");//声明代理
Object obj=Proxy.newProxyInstance(
UtilsDB.class.getClassLoader(),new Class[] { Connection.class},newInvocationHandler() {
@OverridepublicObject invoke(Object proxy, Method method,
Object[] args)throwsThrowable {if (method.getName().equals("close")) {
System.err.println("有人还连接");synchronized(pool) {
pool.addLast((Connection) proxy);
pool.notifyAll();return null;
}
}else{returnmethod.invoke(con, args);
}
}
});//将代理人添加到pool
pool.add((Connection) obj);
}
}catch(Exception e) {throw newRuntimeException(e);
}
}public staticConnection getCon() {synchronized(pool) {if (pool.size() == 0) {try{
pool.wait();
}catch(Exception e) {throw newRuntimeException(e.getMessage());
}returngetCon();
}else{
Connection con=pool.removeFirst();
System.err.println("pool.size:" +pool.size());returncon;
}
}
}
}
mysql动态代理_动态代理连接数据库相关推荐
- 云服务器代理_虚拟主机代理_服务器代理-谈谈IDC加盟合作那些事!
云服务器代理_虚拟主机代理_服务器代理-谈谈IDC加盟合作那些事! 在互联网和大数据时代,云服务器简单高效.安全可靠,弹性扩展,节省IT运维成本等优势受到客户青睐:无论是企业还是个人应用,越来越多的I ...
- 第六周 Java语法总结_设计原则_工厂模式_单例模式_代理模式(静态代理_动态代理)_递归_IO流_网络编程(UDP_TCP)_反射_数据库
文章目录 20.设计原则 1.工厂模式 2.单例模式 1)饿汉式 2)懒汉式 3.Runtime类 4.代理模式 1)静态代理 2)动态代理 动态代理模板 21.递归 22.IO流 1.File 2. ...
- 虚拟机 全局代理 主机代理_虚拟代理简介,第2部分
虚拟机 全局代理 主机代理 Standing behind a rather fancy and flowery name, Virtual Proxies are quite possibly on ...
- final类是否可以被代理_设计模式——代理模式
代理模式 什么是代理模式 通过代理控制对象的访问,可以详细访问某个对象的方法,在这个方法调用处理,或调用后处理.既(AOP微实现) ,AOP核心技术面向切面编程. 代理模式应用场景 SpringAOP ...
- python ip动态代理_动态代理服务器
// 定义申请获得的appKey和appSecret String appkey = "XXXXXXXX"; String secret = "XXXXXXXXXXXXX ...
- mysql 多租户_动态路由数据源(多租户)解决方案
当下有很多服务都使用了多数据源,或是出于跨库查询或是分库分表.读写分离等,多数据源解决方案早已不是稀罕事.常见的解决方案包括使用多数据源框架(例如Shareding-Jdbc).在数据库端做代理(例如 ...
- mysql 透明代理_透明代理MySQL_基于zbus的MySQL透明代理(100行)-云栖社区
我们上次讲到zbus网络通讯的核心API: Dispatcher -- 负责-NIO网络事件Selector引擎的管理,对Selector引擎负载均衡 IoAdaptor -- 网络事件的处理,服务器 ...
- mysql动态扩展_动态可扩展查询MYSQL5.7JSON+虚拟列+Mybatis
背景:现有业务扩展字段,都存在feature字段,存在语义不清晰以及,难以利用索引查询问题 Mysql 5.7后推出利器,JSON+虚拟列,即实现了业务语义统一,也支持索引查询加速 一.简单描述 My ...
- mysql数据库搭建动态网站_动态网站搭建之如何配置Mysql数据库连接详细教程讲解...
众所周知,网站分静态网站和动态网站,那么什么是静态和动态呢?又怎么区分呢? 动态网站体现在网页一般是以asp,jsp,php,aspx等技术编写的网页,但也可以使用URL静态化技术,使网页后缀显示为H ...
- python动态柱状图_动态排名柱状图的两种做法
受B站拜年祭发射最多的弹幕是什么?视频启发,对日常维护工作中的故障硬件也做了一次盘点.这里介绍两种方法,第一种是Python + Matplotlib:第二种是利用GitHub上现成的"轮子 ...
最新文章
- [HNOI2015]落忆枫音
- digitalocean如何还原出厂设置
- 统计学的Python实现-013:频度分布表
- h5小游戏构建架设h5棋牌平台开发制作
- WinForm超市商品管理系统
- Smobiler错误记录
- Greenplum 安装部署 单机版安装(Linux)
- 局域网共享文件搭建方法
- selenium实例登陆拉勾网 外加手动验证验证码
- ORACLE的exp和expdp何时需要特权豁免访问策略(Exempt Access Policy)进行导出?
- tensorflow+python flask进行手写识别_python+flask搭建CNN在线识别手写中文网站!简直太屌了!...
- 【数据结构与算法python】最小生成树算法-Prim算法
- 【论坛】交通需求管理政策与实践——中国城市交通发展论坛第十一次研讨会讨论精选...
- sql select半角html全角,SQL转换全角和半角函数
- 图像金字塔与图像融合——OpenCv库
- 极客日报:恶意软件感染超1000万台安卓设备;淘宝App已支持“云闪付”付款;OpenSSH 8.8发布
- python中图片绘制和输出相关库的原理详解
- 基于GPU编程的三维重建系统
- 汇编语言学习之基本指令(上)
- MSP430F5529库函数——模数转换模块(ADC12)软件触发
热门文章
- php 不通过表单post,php – 简单表单不通过_POST发送数据
- 普通函数和Generator函数递归获取嵌套数组的最大值
- Java使用Cipher类实现加密,包括DES,DES3,AES和RSA加密
- Android设置Textview字体样式
- 在计算机设备中 麦克风属于( ),计算机一级考试基础及MSOffice应用单选真题
- 说说大型高并发高负载网站的系统架构
- Hibernate方法save、update、merge、saveOrUpdate及get和load的区别
- DIV CSS设计时IE6、IE7、FF 与兼容性有关的特性
- 转:Scrapy(爬虫框架)入门教程
- UserDefault使用