gpt4 book ai didi

java - java中获取sql命令的结果

转载 作者:行者123 更新时间:2023-12-02 11:08:19 25 4
gpt4 key购买 nike

我需要获取在我的数据库中输入的最后一个 id 是 AUTO_INCRMENT,所以我这样做了

 String Var = "SELECT MAX(id) FROM goupe ; ";
ResultSet vari=st.executeQuery(Var);
while(vari.next()){
nombre = vari.getInt("id");}
String sql = "INSERT INTO Student(name,famillyname,email,password,module,speciality,card,id_goupe)VALUES('"+name+"','"+familly+"','"+email+"','"+pass+"','"+module+"','"+specialite+"','"+card+"','"+nombre+"');";
st.execute(sql);

但我遇到了这个问题:未找到列“id”。那么我应该怎么做才能正确。

最佳答案

我不得不说,您可以做一些非常简单的事情来极大地改进您的代码。

  • 如果您的最新 ID 是在其他地方生成的,请将查询直接嵌入到语句中,这样您就不需要去获取它。这将降低竞争条件的风险。
  • 使用PreparedStatements。让我问您这个问题:如果您的用户之一的名字是 O'Ryan,您认为会发生什么?

由于您的代码只是一个片段,所以我也只会提供一个片段:

int index = 1;
String sql = "INSERT INTO Student(name,famillyname,email,password,module,speciality,card,id_goupe)" +
"VALUES(?,?,?,?,?,?,?,(SELECT MAX(id) FROM goupe));";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(index++, name);
ps.setString(index++, familyname);
ps.setString(index++, email);
ps.setString(index++, password);
ps.setString(index++, module);
ps.setString(index++, speciality);
ps.setString(index++, card);
int rows = ps.executeUpdate();
if(rows == 1) {
System.out.println("Successfully inserted row");
}

关于java - java中获取sql命令的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50762711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com