代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
数据库连接池
作者:
冰雹猜想
/ 发布于
2015/6/25
/
585
import java.sql.*; import java.util.*; public class DbConnectionManager { private static int maxConnectNum = 8; private static ArrayList connectPool = new ArrayList(); private static int flag = 0; private Connection[] conn = new Connection[maxConnectNum]; private String user = "root"; private String password = "**********";//密码都是星号 private ResultSet rs = null; private Connection conn1 = null; private Statement stmt = null; private synchronized void init() { for (int i = 0; i < maxConnectNum; i++) { conn[i] = getConnectionFromDatabase(); connectPool.add(i, conn[i]); } } public synchronized Connection getConnection() { Connection conn = null; if (connectPool.size() == 0) { try { java.lang.Thread.sleep(100);//这里绝逼要优化 不然蛋疼了就 getConnection(); } catch (InterruptedException e) { System.out.println("Connection failed"); } } else { conn = (Connection) connectPool.remove(0); } return conn; } private Connection getConnectionFromDatabase() { Connection trueConn = null; try { Class.forName("com.mysql.jdbc.Driver").newInstance(); String url = "jdbc:mysql://127.0.0.1:3306/这里就是数据库的名字?useUnicode=true&characterEncoding=UTF-8"; trueConn = DriverManager.getConnection(url, this.user, this.password); } catch (Exception e) { System.out.println(e.toString()); } return trueConn; } private void CreatConAndStmt() { try { if (flag == 0) { init(); this.flag=1; } conn1 = getConnection(); stmt = conn1.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); } catch (Exception e) { e.printStackTrace(); System.out.println("Can't excute sql, reason:" + e.getMessage()); } } public ResultSet getResult(String sql) { rs = null; try { CreatConAndStmt(); rs = stmt.executeQuery(sql); return rs; } catch (SQLException e) { System.err.println("getResult: " + e.getMessage()); return null; } } public boolean excuteSQL(String sql) { try { CreatConAndStmt(); stmt.executeUpdate(sql); return true; } catch (Exception e) { System.err.println("executeSQL: " + e.toString()); return false; } } public void Release() { try { if (stmt != null) { stmt.close(); } if (conn1 != null) { release(conn1); } } catch (Exception e) { System.out.println("can'e release :" + e.getMessage()); } System.out.println(this.connectPool.size()); for (int i=0 ;i<this.connectPool.size();i++){ System.out.println(this.connectPool.get(i)); } } public boolean release(Connection conn) { return connectPool.add(conn); } }
试试其它关键字
数据库
连接池
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
冰雹猜想
贡献的其它代码
(
6
)
.
丑数
.
查询描述表结构及字段和说明
.
数据库连接池
.
高并发下PHP写文件日志丢失
.
在区间[p,q]哥德巴赫猜想是否成立
.
验证在一定范围内冰雹猜想成立
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3