Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mysql连接是线程安全的吗_Java_Mysql_Thread Safety - Fatal编程技术网

Java Mysql连接是线程安全的吗

Java Mysql连接是线程安全的吗,java,mysql,thread-safety,Java,Mysql,Thread Safety,这是java,我可以使用连接“con”从不同的线程连接到我的MySql数据库吗? 或者这不是线程安全的 如果它不是线程安全的,我应该怎么做?它不是线程安全的。每次你需要一个新的连接时,你都需要一个新的连接。它永远不应该是成员变量,始终是局部变量或方法参数。在JDBC中,连接接口不是线程安全的,您必须自己管理它。例如,您需要每次打开并关闭新连接 为了方便起见,您可以使用连接池,因为管理连接的打开和关闭是一项枯燥的任务;使用连接池,您只需获得一个连接并将其放回,该池将管理它打开的所有连接并重用它们。

这是java,我可以使用连接“con”从不同的线程连接到我的MySql数据库吗? 或者这不是线程安全的


如果它不是线程安全的,我应该怎么做?

它不是线程安全的。每次你需要一个新的连接时,你都需要一个新的连接。它永远不应该是成员变量,始终是局部变量或方法参数。

在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.");
 }
}