注意 - 这在这里如下我的问题: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