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动态代理_动态代理连接数据库相关推荐

  1. 云服务器代理_虚拟主机代理_服务器代理-谈谈IDC加盟合作那些事!

    云服务器代理_虚拟主机代理_服务器代理-谈谈IDC加盟合作那些事! 在互联网和大数据时代,云服务器简单高效.安全可靠,弹性扩展,节省IT运维成本等优势受到客户青睐:无论是企业还是个人应用,越来越多的I ...

  2. 第六周 Java语法总结_设计原则_工厂模式_单例模式_代理模式(静态代理_动态代理)_递归_IO流_网络编程(UDP_TCP)_反射_数据库

    文章目录 20.设计原则 1.工厂模式 2.单例模式 1)饿汉式 2)懒汉式 3.Runtime类 4.代理模式 1)静态代理 2)动态代理 动态代理模板 21.递归 22.IO流 1.File 2. ...

  3. 虚拟机 全局代理 主机代理_虚拟代理简介,第2部分

    虚拟机 全局代理 主机代理 Standing behind a rather fancy and flowery name, Virtual Proxies are quite possibly on ...

  4. final类是否可以被代理_设计模式——代理模式

    代理模式 什么是代理模式 通过代理控制对象的访问,可以详细访问某个对象的方法,在这个方法调用处理,或调用后处理.既(AOP微实现) ,AOP核心技术面向切面编程. 代理模式应用场景 SpringAOP ...

  5. python ip动态代理_动态代理服务器

    // 定义申请获得的appKey和appSecret String appkey = "XXXXXXXX"; String secret = "XXXXXXXXXXXXX ...

  6. mysql 多租户_动态路由数据源(多租户)解决方案

    当下有很多服务都使用了多数据源,或是出于跨库查询或是分库分表.读写分离等,多数据源解决方案早已不是稀罕事.常见的解决方案包括使用多数据源框架(例如Shareding-Jdbc).在数据库端做代理(例如 ...

  7. mysql 透明代理_透明代理MySQL_基于zbus的MySQL透明代理(100行)-云栖社区

    我们上次讲到zbus网络通讯的核心API: Dispatcher -- 负责-NIO网络事件Selector引擎的管理,对Selector引擎负载均衡 IoAdaptor -- 网络事件的处理,服务器 ...

  8. mysql动态扩展_动态可扩展查询MYSQL5.7JSON+虚拟列+Mybatis

    背景:现有业务扩展字段,都存在feature字段,存在语义不清晰以及,难以利用索引查询问题 Mysql 5.7后推出利器,JSON+虚拟列,即实现了业务语义统一,也支持索引查询加速 一.简单描述 My ...

  9. mysql数据库搭建动态网站_动态网站搭建之如何配置Mysql数据库连接详细教程讲解...

    众所周知,网站分静态网站和动态网站,那么什么是静态和动态呢?又怎么区分呢? 动态网站体现在网页一般是以asp,jsp,php,aspx等技术编写的网页,但也可以使用URL静态化技术,使网页后缀显示为H ...

  10. python动态柱状图_动态排名柱状图的两种做法

    受B站拜年祭发射最多的弹幕是什么?视频启发,对日常维护工作中的故障硬件也做了一次盘点.这里介绍两种方法,第一种是Python + Matplotlib:第二种是利用GitHub上现成的"轮子 ...

最新文章

  1. [HNOI2015]落忆枫音
  2. digitalocean如何还原出厂设置
  3. 统计学的Python实现-013:频度分布表
  4. h5小游戏构建架设h5棋牌平台开发制作
  5. WinForm超市商品管理系统
  6. Smobiler错误记录
  7. Greenplum 安装部署 单机版安装(Linux)
  8. 局域网共享文件搭建方法
  9. selenium实例登陆拉勾网 外加手动验证验证码
  10. ORACLE的exp和expdp何时需要特权豁免访问策略(Exempt Access Policy)进行导出?
  11. tensorflow+python flask进行手写识别_python+flask搭建CNN在线识别手写中文网站!简直太屌了!...
  12. 【数据结构与算法python】最小生成树算法-Prim算法
  13. 【论坛】交通需求管理政策与实践——中国城市交通发展论坛第十一次研讨会讨论精选...
  14. sql select半角html全角,SQL转换全角和半角函数
  15. 图像金字塔与图像融合——OpenCv库
  16. 极客日报:恶意软件感染超1000万台安卓设备;淘宝App已支持“云闪付”付款;OpenSSH 8.8发布
  17. python中图片绘制和输出相关库的原理详解
  18. 基于GPU编程的三维重建系统
  19. 汇编语言学习之基本指令(上)
  20. MSP430F5529库函数——模数转换模块(ADC12)软件触发

热门文章

  1. php 不通过表单post,php – 简单表单不通过_POST发送数据
  2. 普通函数和Generator函数递归获取嵌套数组的最大值
  3. Java使用Cipher类实现加密,包括DES,DES3,AES和RSA加密
  4. Android设置Textview字体样式
  5. 在计算机设备中 麦克风属于( ),计算机一级考试基础及MSOffice应用单选真题
  6. 说说大型高并发高负载网站的系统架构
  7. Hibernate方法save、update、merge、saveOrUpdate及get和load的区别
  8. DIV CSS设计时IE6、IE7、FF 与兼容性有关的特性
  9. 转:Scrapy(爬虫框架)入门教程
  10. UserDefault使用