注意 - 這在這裏如下我的問題:JDBC: Does the connection break if i lose reference to the Connection object?大LAST_INSERT_ID()的問題,再次
現在我有一個創建一個類,所以我可以應付JDBC容易爲我的代碼的其餘部分 -
public class Functions {
private String DB_SERVER = "";
private String DB_NAME = "test";
private String DB_USERNAME = "root";
private String DB_PASSWORD = "password";
public Connection con;
public PreparedStatement ps;
public ResultSet rs;
public ResultSetMetaData rsmd;
public void connect()
throws java.io.FileNotFoundException, java.io.IOException,
SQLException, Exception {
String[] dbParms = Parameters.load();
DB_SERVER = dbParms[0];
DB_NAME = dbParms[1];
DB_USERNAME = dbParms[2];
DB_PASSWORD = dbParms[3];
// Connect.
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://"
+ DB_SERVER + "/"
+ DB_NAME, DB_USERNAME, DB_PASSWORD);
}
public void disconnect() throws SQLException {
// Close.
con.close();
}
}
如圖所示Parameters.load()
每次都從文件中刷新連接參數,以便對下一次立即連接應用相同的更改。
這個類的一個實戰例子 -
public static void add(String NAME)
throws java.io.FileNotFoundException, java.io.IOException, SQLException, Exception {
Functions dbf = new Functions();
dbf.connect();
String query = "INSERT INTO " + TABLE_NAME + "(" +
"NAME" +
") VALUES(?)";
PreparedStatement ps = dbf.con.prepareStatement(query);
ps.setString(1, NAME);
ps.executeUpdate();
dbf.disconnect();
}
現在,這裏的問題是 - 添加一條記錄上表中,add()
方法將打開一個連接,添加記錄 - 然後調用disconnect()
。
,如果我想插入記錄的ID叫我以後add()
樣的:
Department.add("new dept");
int ID = getlastID();
是不是有可能其他加載()被調用這兩個語句之間?
這就是我剛纔的想法。 :) – Bojack 2010-06-06 09:43:49