是一个Mysql连接线程安全

时间:2012-08-18 22:48:12

标签: java mysql thread-safety

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

在JDBC中,Connection接口不是线程安全的,您必须自己管理它。例如,您需要每次都打开新连接并关闭它。

为方便起见,您可以使用连接池,因为管理连接的打开和关闭是一项无聊的任务;使用连接池,您只需获得连接并将其放回,池将管理它打开的所有连接并重用它们。您可以结帐C3P0DBCP