它是否實現了連接池? 我相信PostgreSQL JDBC驅動程序是線程安全的,但我不確定在MYSQL上。Mysqldatasource線程安全
我想提出一個靜態對象來處理這樣的 包com.amzi.DataAccess DB連接;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
public class DBUtil {
private static MysqlDataSource dataSource = null;
public static MysqlDataSource getDataSource() {
if (dataSource == null) {
dataSource = new MysqlDataSource();
dataSource.setUser("root");
dataSource.setPassword(""); // Put your password here
dataSource.setUrl("jdbc:mysql://localhost:3306/user_device_table");
}
return dataSource;
}
}
而在另一個類我創建了一個連接,看是否有記錄存在。 一旦我完成了連接,我就關閉它。
public boolean ValidateLogin(User user) {
boolean status = false;
PreparedStatement ps = null;
ResultSet rs = null;
Connection connection = null;
try {
connection = DBUtil.getDataSource().getConnection();
ps = connection.prepareStatement("select * from users where user_name=? and password=?");
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
rs = ps.executeQuery();
status = rs.next();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return status;
}
在大多數情況下(除非你使用舊版本的Tomcat),你應該使用你的應用程序服務器的配置設置數據源。這總是伴隨着連接池配置。 –
@SteveC是必需的連接池嗎?假設我在本地主機上運行3個不同的筆記本電腦,但它們都連接到同一個遠程數據庫?在這種情況下需要一個池嗎? –
如果您需要擴展以便您可以擁有10個,100個或1000個用戶,那麼使用連接池將有很大幫助。 –