编写构成PreparedStatement
的相应Java语句,将讲师ID
设置为10101
,然后找到讲师用PreparedStatement
教授的课程标题,执行查询。您可以假设已经创建了一个Connection对象conn。
我理解如何制作预准备语句并执行查询。我只是不确定如何在一个
中进行两个查询PreparedStatement pStmt = conn.prepareStatement(“update instructor set ID = 10101”);
pStmt.setString(1,11111);
pStmt.executeUpdate();
答案 0 :(得分:1)
您可以使用批量更新。请在http://tutorials.jenkov.com/jdbc/batchupdate.html中查看。
否则:
如果只想在一次调用中向DBMS发送多个命令,则需要使用BEGIN ... END块对它们进行舍入。请检查以下示例:
BEGIN
UPDATE .... ;
INSERT .... ;
(...)
END;
请注意,这是伪代码。
如果您使用块BEGIN ... END,则可以发送多个更新,插入,删除等;像Oracle这样的一些数据库接受它。
答案 1 :(得分:0)
// the '?' is a placeholder for values
final String sql = "UPDATE instructor SET ID = ?"; // you're probably missing a WHERE clause here, otherwise it will update every instructor to have the same ID
// send the query to the db server for it to prepare
final PreparedStatement updateInstructorIdPstmt = conn.prepareStatement(sql);
// ...
public void updateInstructorID(final int newId) throws SQLException {
// set the newId as the parameter for this query execution
updateInstructorIdPstmt.setInt(1, newId); // '1' means it's the first paramenter.
// it could be 2 or 3 or whatever depending on which '?' it is in your statement
// execute this update query
updateInstructorIdPstmt.execute(); // executeUpdate() will return how many rows were updated, if you need to know that info
}
还有其他方法可以对此进行优化,但它应该让您走上正确的道路。以这种方式执行此操作将允许您继续执行给定的准备语句的查询。您可以拥有多个准备好的报表,每个报表都有自己的查询支持。