36.自己写的一个开源连接池功能
2013-10-03 19:46
204 查看
public class ConnectionPool { private LinkedList<Connection> pool; private static String url = "jdbc:mysql://w.rdc.sae.sina.com.cn:3307/app_imu2b"; private static String saeAccessKey = null; private static String saeSecretKey = null; private static int maxCount = 200; private static int currentCount = 50; // 因为初始的就是50个 public ConnectionPool() { pool = new LinkedList<Connection>(); saeAccessKey = SaeUserInfo.getAccessKey(); saeSecretKey = SaeUserInfo.getSecretKey(); for (int i = 0; i < 50; i++) { try { Connection conn; conn = DriverManager.getConnection(url, saeAccessKey, saeSecretKey); pool.addLast(conn); } catch (SQLException e) { throw new InitializeErrorException(e.getMessage()); } } } public Connection getConnection() { synchronized (ConnectionPool.class) { Connection conn = null; if (pool.size() > 0) return pool.removeFirst(); else if (currentCount < maxCount) { try { conn = DriverManager.getConnection(url, saeAccessKey, saeSecretKey); currentCount++; pool.addLast(conn); } catch (SQLException e) { } return pool.removeFirst(); } else { throw new ExceptionInInitializerError("SQL连接已经是最大值"); } } } public void free(Connection conn) { pool.addFirst(conn); } }
相关文章推荐
- SuperSwipeRefreshLayout 一个功能强大的自己定义下拉刷新组件
- 自己写的一个功能类似于strtok函数的函数
- 【React Native】开源一个自己入门学习的小项目
- 自己创建一个新的Vec类用来实现vector的功能
- 自己写了一个链表功能还不完善但是简单的增删改查功能都已经实现了
- 一个自己思索很长时间的功能
- LazyCode 自己开源的一个类库
- 自己在项目中写的一个Jquery插件和Jquery tab 功能
- 最近写了一个Windows Phone微博 客户端。 自己写了一个 MVVM 现在把它开源出来。http://reactivemvvm.codeplex.com/
- Caf.CMS是一个免费的、 开源,功能齐全的CMS
- 自己做了一个C#桌面应用程序消费管理系统,功能感觉有点简陋,求点意见
- 自己总结的Android开源项目及库(github一个作者的总结)
- 最近想写一个邮箱自动验证功能,在网上看了很多,写到自己上面出了很多问题,记录下来给后面的人一个参考
- 实现安卓程序退出后重进自己程序的一个小功能(android,unity)
- 自己手动做一个社会化分享功能
- 一个开源、功能强大的富文本编辑器
- 自己实现的一个数组排序并去重的功能
- 一个功能完备的.NET开源OpenID Connect/OAuth 2.0框架——IdentityServer3
- 怎么能够认清一个开源组件的功能