我以前一直在使用多个连接池API,但我认为是时候自己做一些事情了。 Iam目前正在寻找一种非常基本的MySQL连接池功能,我可以在其上进行构建。如果你们能给我一个诚实的意见,我真的很感激!轻量级自制Java MySQL连接池 - 它会工作吗?
下面的代码:
package temp.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class MySQL {
private static final String driver = "com.mysql.jdbc.Driver";
private static final String url = "jdbc:mysql://localhost:3306/beta";
private static final String username = "root";
private static final String password = "mypassword";
private static List<Connection> pool = new ArrayList<Connection>();
public static void setup() {
try {
for(int i = 0; i < 5; i++) {
Class.forName(driver);
Connection connection = DriverManager.getConnection(url, username, password);
pool.add(connection);
}
}
catch (ClassNotFoundException e) { e.printStackTrace(); }
catch (SQLException e) { e.printStackTrace(); }
}
public static void addConnection(Connection connection) {
pool.add(connection);
}
public static Connection getConnection() {
Connection connection = null;
if(pool.size() <= 0) return connection;
connection = pool.get(0); pool.remove(0);
return connection;
}
}
提前感谢!
真诚, Gemaken
至少你的连接池应该实现'javax.sql.DataSource'接口(所以使用该池的代码不知道它使用了一个池),尽管你真的不应该实现你自己的接口。如果你真的开始这样做,看看C3P0 - http://sourceforge.net/projects/c3p0 - 它得到它的权利 – 2014-09-05 11:26:21
感谢您的快速回复!我会看看,但首先,请告诉我,为什么每个人都确信,人们应该使用现有的连接池API? – Gemaken 2014-09-05 11:35:23
在绝大多数情况下,“自己动手”是不对的。像C3P0这样的API是稳健的实现,已被数千人使用,使其得到很好的验证 – 2014-09-05 13:55:30