Java Mysql连接是线程安全的吗
这是java,我可以使用连接“con”从不同的线程连接到我的MySql数据库吗? 或者这不是线程安全的Java Mysql连接是线程安全的吗,java,mysql,thread-safety,Java,Mysql,Thread Safety,这是java,我可以使用连接“con”从不同的线程连接到我的MySql数据库吗? 或者这不是线程安全的 如果它不是线程安全的,我应该怎么做?它不是线程安全的。每次你需要一个新的连接时,你都需要一个新的连接。它永远不应该是成员变量,始终是局部变量或方法参数。在JDBC中,连接接口不是线程安全的,您必须自己管理它。例如,您需要每次打开并关闭新连接 为了方便起见,您可以使用连接池,因为管理连接的打开和关闭是一项枯燥的任务;使用连接池,您只需获得一个连接并将其放回,该池将管理它打开的所有连接并重用它们。
如果它不是线程安全的,我应该怎么做?它不是线程安全的。每次你需要一个新的连接时,你都需要一个新的连接。它永远不应该是成员变量,始终是局部变量或方法参数。在JDBC中,连接接口不是线程安全的,您必须自己管理它。例如,您需要每次打开并关闭新连接
为了方便起见,您可以使用连接池,因为管理连接的打开和关闭是一项枯燥的任务;使用连接池,您只需获得一个连接并将其放回,该池将管理它打开的所有连接并重用它们。您可以签出或这可能很无聊,但连接池的接口与提供非池连接的接口相同。技术上不正确:请参阅,其中的答案可以更准确地解释这一点。
public void SQLconnect() {
try {
System.out.println("Connecting to MySQL database...");
Class.forName("com.mysql.jdbc.Driver").newInstance();
String conn = "jdbc:mysql://" + this.SQL_HOST/* + ":" + this.SQL_PORT */
+ "/" + this.SQL_DATA;
this.con = DriverManager
.getConnection(conn, this.SQL_USER, this.SQL_PASS);
} catch (ClassNotFoundException ex) {
System.err.println("No MySQL driver found!");
} catch (SQLException ex) {
System.err
.println("Error while fetching MySQL connection!");
} catch (Exception ex) {
System.err
.println("Unknown error while fetching MySQL connection.");
}
}