【发布时间】:2014-07-22 01:28:28
【问题描述】:
这里是连接方法:
private static Connection connection = null;
/**
* Gets the database connection.
*/
public static Connection getConnection() {
return Storage.connection;
}
/**
* Connects to the database.
*/
public static void connectToDatabase() {
try {
String userName = "root";
String password = "mysql";
String url = "jdbc:mysql://localhost/secondsemesterprojectdanishcrowncaos";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Storage.connection = DriverManager.getConnection(url, userName,
password);
Storage.connection
.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
Storage.connection.setAutoCommit(false);
} catch (Exception e) {
System.err.println("Cannot connect to database server." + e);
}
}
/**
* Terminates the database connection.
*/
public static void disconnectDatabase() {
if (Storage.connection != null) {
try {
Storage.connection.close();
} catch (Exception e) {
}
}
}
这是我的连接和查询:我所有的数据库连接几乎都和这个一样:
public void addLoadingDock(LoadingDock loadingDock) {
loadingDocks.add(loadingDock);
Storage.connectToDatabase();
PreparedStatement s;
try {
String query = "INSERT INTO LoadingDocks(dock_no, active, product_type_id) VALUES (?, ?, ?);";
s = Storage.connection.prepareStatement(query,
Statement.RETURN_GENERATED_KEYS);
s.setInt(1, loadingDock.getDockNo());
s.setBoolean(2, loadingDock.getActive());
s.setInt(3, loadingDock.getProductType().getId());
int rows = s.executeUpdate();
Storage.connection.commit();
System.out.println(rows + " row(s) created in database");
ResultSet generatedKeys;
generatedKeys = s.getGeneratedKeys();
if (generatedKeys.next()) {
loadingDock.setId(generatedKeys.getInt(1));
} else {
throw new SQLException(
"Creating LoadingDock failed, no generated key obtained.");
}
generatedKeys.close();
s.close();
} catch (Exception e) {
System.err.println("Error adding LoadingDock. Details: " + e);
try {
Storage.connection.rollback();
} catch (SQLException e1) {
System.err.println("Error on rollback. Details: " + e1);
}
} finally {
Storage.disconnectDatabase();
}
}
在某一时刻程序遇到了太多的连接问题。
请告诉我,连接出了什么问题。我没有正确关闭它们的地方?或任何其他问题。
【问题讨论】:
标签: java mysql sql database jdbc