在java中获取sql命令的结果

时间:2018-06-08 14:20:45

标签: java sql

我需要在我的数据库中输入最后一个id女巫是AUTO_INCREMENT所以我这样做了

val x : Integer = 1
val y : Integer = 1
type X = x.type
type Y = y.type
def foo(implicit ev: X =:= Y) = 123
foo //would fail to compile.

但我有这个问题没有找到列'id'。 所以我该怎么做才能做对。

2 个答案:

答案 0 :(得分:1)

我必须说,您可以采取一些非常简单的方法来大大改善您的代码。

  • 如果您的最新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");
}

答案 1 :(得分:0)

执行查询SELECT MAX(id) FROM goupe;时,在返回的表格中,列名称不再保留为id

因此,最好的方法是为列提供如下名称:

SELECT MAX(id) AS maxid FROM goupe;

然后,您可以使用以下方式获取值:

vari.getInt("maxid")