May*_*dya 2 java mysql jdbc prepared-statement
这是我的示例代码行
String query = "INSERT INTO tb_product_group values(?,?,?,?,?) ON DUPLICATE KEY UPDATE prg_name = values(prg_name)";
stmtGroups = con.prepareStatement(query,Statement.RETURN_GENERATED_KEYS);
stmtGroups.setInt(index++, java.sql.Types.NULL);
stmtGroups.setString(index++, "");
stmtGroups.setString(index++, str[1]);
stmtGroups.setString(index++, str[2]);
stmtGroups.setInt(index++, oprDto.getId());
System.out.println(stmtGroups);
ResultSet rs = stmtGroups.getGeneratedKeys();
if (rs.next()){
groupID = rs.getLong(1);
}
Run Code Online (Sandbox Code Playgroud)
第一次插入数据时(null,"1","1","1",1); 我得到一个新生成ID的groupID.但是第二次我尝试添加由于唯一键约束而触发UPDATE语句的相同数据.那次我把groupID作为null.
我尝试REPLACE INTO tb_product_group值(?,?,?,?,?),但也作为generatedKeys获取null.
尝试
INSERT INTO tb_product_group values(?,?,?,?,?) ON DUPLICATE KEY UPDATE
prg_name = values(prg_name), id = last_insert_id(id)
Run Code Online (Sandbox Code Playgroud)
替换id
为auto_increment列的名称.
编辑:我没有用java api试过这个,所以可能还有其他问题.
归档时间: |
|
查看次数: |
1259 次 |
最近记录: |