java - 如何实现管理连接的连接?
问题描述
假设有这个动作:
Client-->Connection Handles-->(<--)connection poll
连接池刚刚创建,Connection Hanldes 只接受连接对象。我的问题是:这是实现连接句柄的最佳方式?
1)单身人士
private static SingletonConnection s = null;
private SingletonConnection() {}
public static SingletonConnection getInstance() {
if (s != null) {
return s;
} else {
s = new SingletonConnection();
return s;
}
}
public Connection getStartConnection() {
InitialContext initialContext = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource) initialContext
.lookup("jdbc/mysqldb");
java.sql.Connection conn = ds.getConnection();
}
2)静态方法 public static Connection getStartConnection(){
InitialContext initialContext = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource) initialContext
.lookup("jdbc/mysqldb");
java.sql.Connection conn = ds.getConnection();
return conn;
}
3) 普通班MyOperation m=new MyOperation();
public class MyOperation(){
private Connection connection;
public MyOperation(){
InitialContext initialContext = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource) initialContext
.lookup("jdbc/mysqldb");
java.sql.Connection conn = ds.getConnection();
connection=conn;
}
}
哪个是最好的方法?
解决方案
如果句柄的唯一用途是在没有上下文的情况下传输连接引用,为了简单起见,我建议使用静态方法。但是如果上下文变得很重要,那么单例实用程序类就会很有用。
推荐阅读
- docker - 在不盯着它的情况下构建一个 docker 镜像
- c++ - Lua 用户数据生命周期管理
- domain-driven-design - 内部聚合的集合是否有效?
- sql - 如何使用 INNER JOIN 进行 GROUP BY
- git - 从当前工作的分支分支 - Git
- c++ - DragQueryFile 无法识别平假名字符
- php - 这个搜索查询的代码有问题吗?试图调试别人的网站
- ios - 当数据库字典在另一个视图控制器中时,如何将图像 URL 添加到 firebase 数据库
- python - API 仅提供 Python 中的标头,但不提供数据
- javascript - 硬重新加载页面后删除一些 dom 元素