JSP,mysql - 如何从新查询结果中获取和存储变量

时间:2016-02-25 05:31:15

标签: mysql jsp

我有一个插入sql查询。它工作正常,我只想获得它将生成的p_id并将其存储为变量,然后我将有另一个INSERT语句然后我将放置该ID的变量。我正在做System.out.println并产生null

这是我将运行的查询,它工作正常,它将数据插入数据库中。 (ID是auto_incremented所以我没有把它放在那里)

int i = st.executeUpdate("INSERT INTO logs_pms_t_project (p_name, p_objective) VALUES ('"+p_name+"','"+p_objective+"')");

我对如何获得p_id

的想法 上述查询后

String p_id= request.getParameter("p_id");

我现在可以执行另一个查询,因为我知道p_id

中有变量

int j = st.executeUpdate("INSERT INTO logs_pms_r_budget (budget_cost, p_id) VALUES ('"+p_budget+"','"+p_id+"')");

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

int i = st.executeUpdate("INSERT INTO logs_pms_t_project (p_name, p_objective) 
        VALUES ('"+p_name+"','"+p_objective+"')",Statement.RETURN_GENERATED_KEYS);

ResultSet rs = st.getGeneratedKeys();
int lastInsertedID = -1;
if (rs.next()) {
     lastInsertedID = rs.getInt(1);
     System.out.println("Last Inserted ID = " + lastInsertedID);
}

它将返回最后插入的ID(主键)。

注意: ExecuteUpdate会返回number of affected rows

单个插入始终会影响表格中的一行。因此变量i包含值1。但是,为了获得最后插入的主键值,您需要按照上面的代码段进行操作。