用java代码实现,简易连接池
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class ConnectionPool {
private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //驱动类
private static final String URL = "jdbc:sqlserver://192.168.0.200:1433;databaseName=MIFUWEBDB"; //数据库url
private static final String USER = "sa";
private static final String PASSWORD = "123456";
private static final int MAXPOOL = 100; //最大连接数
private static final int MINPOOL = 10; //最小连接数
private static List pool = new LinkedList(); //连接池对象
public ConnectionPool(){
init();
}
private void init(){ //初始化
try {
Class.forName(DRIVER);
for(int i=0; i<MINPOOL; i++){
Connection con = DriverManager.getConnection(URL, USER, PASSWORD);
pool.add(con);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public synchronized Connection getCon(){ //获取连接
while(pool.isEmpty()){
try {
this.wait();
} catch (Exception e) {
e.printStackTrace();
}
}
Connection con = (Connection) pool.remove(0);
return con;
}
public synchronized void returnCon(Connection con){ //释放连接
if(con!=null){
pool.add(con);
}
this.notifyAll();
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用