发布网友 发布时间:2022-04-08 02:27
共4个回答
懂视网 时间:2022-04-08 06:48
一、获取插入记录主键值
在创建语句的地方使用Statement.RETURN_GENERATED_KEYS标识一下,然后通过getGeneratedKeys方法获得
preparedStatement=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
preparedStatement.excuteUpdate();
resultSet=preparedStatement.getGeneratedKeys();//主键有可能有多个
if(resultSet.next()){
return resultSet.getInt(1);
}
二、执行批量操作
String sql="insert into user(name,birthday,money) values(?,?,?)";
preparedStatement=conn.prepareStatement(sql);
for(int i=0;i<1000;i++){
preparedStatement.setString(1,"batchName"+i);
preparedStatement.setDate(2,new Date(System.currentTimeMillis()));
preparedStatement.setFloat(3,100f+i);
preparedStatement.addBatch();//(打包)加入批量操作标识中,后期统一执行;注意并不是数据打在一个包里,越多越好
}
int[] intArray=preparedStatement.excuteBatch();
三、ResultSet结果集滚动
Statement statement=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
resultSet.next()下一条;result.previous()前一条;result.absolute(5)定位到第五条
初学JDBC,获取插入记录的主键、执行批量操作
标签:
热心网友 时间:2022-04-08 03:56
insert into 表名(列名,列名) values(@列名, @列名) SELECT @@IDENTITY AS id返回一条id就是你要的结果,这条插入语句,能返回你插入后数据的标识列我不知道为什么正确的答案得不到分!热心网友 时间:2022-04-08 05:14
sqlserver 有系统变量@@identity,插入后直接运行select @@identity,结果就是你要的热心网友 时间:2022-04-08 06:49
ID如果是有顺序的,就可以,再次检索表,取id最大的那条。 select max(id) from table