急:怎么把java类封装成SDK,还要放入连接池,怎么搞啊,大神们?
3个回答
展开全部
呵呵 这哥们是新手 从描述问题上来看就可以看出 你的意图估计是这样:
你想把一个类或一些类打包成jar文件,至于这个jar文件有什么api,我从你所说的连接池来看应该是创建数据库连接的一些api吧,你想把这些连接丢给连接池来管理,对吗?
首先,你封装好的创建连接的api,系统初始化时就创建一定数量的的连接。
第二,把这些连接丢给连接池。
第三,让连接池来维护你的连接,如果连接池中的连接数少于你定的阀值,就让其再调用你之前封装的api创建一些连接,再纳入连接池中。如此循环。
第四,程序要使用连接就直接从连接池中取。
// 初始化连接池
String connUrl = "jdbc:mysql://your.database.domain/yourDBname";
String driver = "com.mysql.jdbc.Driver";
private Map<java.sql.Connection, String> connectionPool = null;
private void initPool() {
try {
connectionPool = new HashMap<java.sql.Connection, String>();
Class.forName(driver);
java.sql.Connection con = DriverManager.getConnection(dbUrl);
for (int poolInd = poolSize; poolInd < 0; poolInd++) {
connectionPool.put(con, "AVAILABLE");
}
}
// 取连接
public java.sql.Connection getConnection() throws ClassNotFoundException, SQLException
{
boolean isConnectionAvailable = true;
for (Entry<java.sql.Connection, String> entry : connectionPool.entrySet()) {
synchronized (entry) {
if (entry.getValue()=="AVAILABLE") {
entry.setValue("NOTAVAILABLE");
return (java.sql.Connection) entry.getKey();
}
isConnectionAvailable = false;
}
}
if (!isConnectionAvailable) {
Class.forName(driver);
java.sql.Connection con = DriverManager.getConnection(connUrl);
connectionPool.put(con, "NOTAVAILABLE");
return con;
}
return null;
}
// 释放连接
public void closeConnection(java.sql.Connection connection) throws ClassNotFoundException, SQLException {
for (Entry<java.sql.Connection, String> entry : connectionPool.entrySet()) {
synchronized (entry) {
if (entry.getKey().equals(connection)) {
//Getting Back the conncetion to Pool
entry.setValue("AVAILABLE");
}
}
}
}
基本上连接池的实际工作原理就是这样,当然建议使用开源现成的C3P0,DBCP。
追问
请问客户端与服务端的连接可以放入连接池管理吗
展开全部
你的问题根本各种错误,请想好了在说
追问
高手,是这样的,我们老板然我把客户端一些程序做成SDK,他说他要放入连接池,据我了解连接池是JDBC用的,抑郁了,求指导。
追答
jar包是封装的吗。jar包是打包,封装用在类上。你的问题我不说很清楚,是要自己写一个类,打包吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是封装成jar包吧?
追问
封装jar包容易,就是不知道SDK和JAR包的区别在哪
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询