草庐IT

getgeneratedkeys

全部标签

java - 无法使用 PreparedStatement 的 getGeneratedKeys() 在 Java 中找到生成的 key

我有一个查询如下:StringSQL="insertintotable(id,name)values(sequence.nextval,?)";然后我像这样制作一个PreparedStatement://initiateconnection,statementetcpStatement=connection.prepareStatement(SQL,Statement.RETURN_GENERATED_KEYS);pStatement.setString(1,'blabla');pStatement.executeUpdate();ResultSetrs=pStatement.getG

java - statement.getGeneratedKeys() 和 MySQL

我已经了解到mysql中的last_insert_id不是池安全的。也就是说,如果你正在合并连接,你会弄乱insert_ids。java的statement.getGeneratedKeys()如何获取插入的key?它对游泳池安全吗? 最佳答案 我引用了MySQLConnector/J中的相关文本internals这里:Youshouldbeaware,thatattimes,itcanbetrickytousethe'SELECTLAST_INSERT_ID()'query,asthatfunction'svalueisscope

java - JDBC 从重复插入中生成 key

如果您有一个带有ONDUPLICATEKEY子句的插入,并且存在重复键,是否有任何方法可以取回重复的主键?还是我必须自己手动查询?据我所知,CallableStatement类中的getGeneratedKeys()不会返回,因为新插入实际上并未完成。编辑抱歉,如果不清楚,但我想取回记录的PRIMARYKEY。所以如果我有下表(请原谅语法,只是徒手输入):CREATETABLEsome_table(idint(11)unsignedNOTNULLAUTO_INCREMENT,valuevarchar(500)NOTNULL,countint(10)unsignedNOTNULLDEFA

java - 为什么 getGeneratedKeys() 返回 "GENERATED_KEY"作为列名?

我正在玩JDBC/MySQL5.1。我创建了一个insert查询来将一些数据插入到表中,并希望从新创建的行中返回生成的键。但是,当我通过“id”引用列时,这是我的PK和自动递增列。PreparedStatementps=St0rm.getInstance().getDatabase("main").prepare("INSERTINTOquests(name,minlevel,start_npc,end_npc)VALUES(?,?,?,?)",true);//createsapreparedstatementwithflagRETURN_GENERATED_KEYS//...inta

java - 从 Java 使用 sqlite 获取最后插入的 id 的最佳方法是什么?

使用Java中的sqlite获取最后插入的ID的最佳方法是什么?Google给了我不同的答案——有人说选择last-insert-rowid;有人说选择last-insert-rowid;其他人说调用statement.getGeneratedKeys()。最好的路线是什么?(我只想返回id,而不是将它用于其他插入或任何东西。) 最佳答案 这两种方法都执行完全相同的SQL语句,但是java.sql.Statement.getGeneratedKeys()更易于移植到不同的底层数据库。使用sqlite3_last_insert_row

java - 从 Java 使用 sqlite 获取最后插入的 id 的最佳方法是什么?

使用Java中的sqlite获取最后插入的ID的最佳方法是什么?Google给了我不同的答案——有人说选择last-insert-rowid;有人说选择last-insert-rowid;其他人说调用statement.getGeneratedKeys()。最好的路线是什么?(我只想返回id,而不是将它用于其他插入或任何东西。) 最佳答案 这两种方法都执行完全相同的SQL语句,但是java.sql.Statement.getGeneratedKeys()更易于移植到不同的底层数据库。使用sqlite3_last_insert_row

java - sql jdbc getgeneratedkeys 返回列 "id"未找到,列类型未知

我想使用插入查询检索表中最近更新的值。这些是我的sql表中的数据类型。数据类型:int(11)//primarykeyautoincrement,notbeingassignedbysqlQueryvarchar(30)timestamp//hasadefaultvalue.butiamexplicitassigningitusingCURRENT_TIMESTAMPvarchar(300)varchar(300)varchar(300)int(11)varchar(300)java代码statement.executeUpdate(sqlQuery,Statement.RETURN_

java - PreparedStatement.executeBatch() 之后的 getGeneratedKeys()

我想使用PreparedStatementINSERT几行:ps=con.prepareStatement(query,PreparedStatement.RETURN_GENERATED_KEYS);for(Elemente:listOfElements){ps.setString(1,this.col_val_1);ps.setString(2,this.col_val_2);ps.setInt(3,this.col_val_3);ps.addBatch();}ps.executeBatch();ResultSetrs=ps.getGeneratedKeys();此时,当我希望为每

java - 使用 getGeneratedKeys 在带有 Connector/J 的 MySQL 中批量插入

使用Connector/J,我想批量插入主表,然后批量插入详细信息表(PreparedStatement.executeBatch()两者都适用)。我在网上没有找到太多信息,所以我正在寻找有这方面经验的人的任何反馈。我可以用吗Statement.getGeneratedKeys()来获取新插入行的ID在主表中,这样我就可以使用它们作为外键细节插入?如果不是每个查询都有结果怎么办?插入(例如,有一个insert忽略或insert...重复key更新查询)?我会得到一排在Statement.getGeneratedKeys()中为每个声明,还是只针对新声明?会发生什么Statement.g