last_insert_id使用及其问题解决方案
来源:互联网 发布:淘宝钻石展位多少钱 编辑:程序博客网 时间:2024/06/05 15:05
前提是该表中的主键是自增的。last_isnert_id是获取插入sql语句后最新的ID。last_isnert_id是mysql提供的一个查询,当其植入在spring程序中会发生以下几种情况:
import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import org.junit.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.core.PreparedStatementCreator;import org.springframework.jdbc.support.GeneratedKeyHolder;import org.springframework.jdbc.support.KeyHolder;public class TestLastInsertId {@Autowired(required=true) private JdbcTemplate jdbcTemplate;@Testpublic void test() {final String sql = "insert into series(class_id,brand_id,series_name) values("+ 2 + "," + 2 + ",'" + "sfsfds')";System.out.println(sql);// 这种方式会出现主键不确定性int ret = jdbcTemplate.update(sql);System.out.println("系列返回值===" + ret);String last = "select last_insert_id()";int lastId = jdbcTemplate.queryForInt(last);System.out.println("最新系列ID====" + lastId);// 以上这种方式不介意使用KeyHolder keyHolder = new GeneratedKeyHolder();// 这种方式是在上一中方式之上优化其不确定性,并且可以实现多表增加,并且获取其主键IDint i = jdbcTemplate.update(new PreparedStatementCreator() {public PreparedStatement createPreparedStatement(Connection con)throws SQLException {return con.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);// or return con.prepareStatement(sql, new// String[]{"ID"});//ID是自动增长的自动}}, keyHolder);System.out.println(i);System.out.println(keyHolder.getKeyList());final String sql1 = "insert into meta_type(series_id,type_name) values("+ 2 + ",'" + "sfsfds')";System.out.println(sql1);int j = jdbcTemplate.update(new PreparedStatementCreator() {public PreparedStatement createPreparedStatement(Connection con)throws SQLException {return con.prepareStatement(sql1,PreparedStatement.RETURN_GENERATED_KEYS);// or return con.prepareStatement(sql, new// String[]{"ID"});//ID是自动增长的自动}}, keyHolder);System.out.println("----" + j);System.out.println(keyHolder.getKeyList());}}
阅读全文
1 0
- last_insert_id使用及其问题解决方案
- 使用MySQL的LAST_INSERT_ID
- 使用MySQL的LAST_INSERT_ID
- 使用MySQL的LAST_INSERT_ID
- 关于Mysql LAST_INSERT_ID()使用
- LAST_INSERT_ID()
- 使用VS2005调试问题解决方案
- RHEL6.5使用问题解决方案
- mybatis使用初步问题解决方案
- 使用MySQL的LAST_INSERT_ID(转)
- mysql LAST_INSERT_ID 使用与注意事项
- last_insert_id()函数使用的注意事项
- mount 加载window分区及其相关问题解决方案
- 跨服务器导入数据SQL语句及其问题解决方案
- ASP.NET画面跳转实现及其传值问题解决方案
- container-executor.cfg文件及其各级父路径问题解决方案
- Ubuntu8.10安装使用问题解决方案集中
- Ubuntu8.10安装使用问题解决方案集中
- calltree的安装与使用
- Mac 搭建基于Github的hexo博客
- TCP和UDP的区别
- 知识过载与疲于奔命
- js关键字,保留字,标识符总结
- last_insert_id使用及其问题解决方案
- 丛林战争项目二之实现服务器端异步的消息接收
- zabbix监控之二---zabbix导入模板,配置监控项、触发器及报警媒介
- HDU-2016(数据的交换输出)
- 其实装修也是工程管理
- Laravel框架连接Oracle数据库
- ES6-函数的扩展-函数参数的默认值
- 请教大神关于 Django 自动发邮件时候的 CSRF 问题
- Maven中settings.xml的配置项说明