3
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数据库吗?或者这不是线程安全的。

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

4

2 回答 2

2

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

于 2012-08-19T01:22:39.460 回答
1

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

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

于 2012-08-19T05:34:04.070 回答