问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

jdbcTemplate插入MYSQL时怎么返回主键ID

发布网友 发布时间:2022-04-29 13:26

我来回答

2个回答

懂视网 时间:2022-04-08 22:48

void OrderInsert(){ Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DBUtils.getConnection(); //事务开始 conn.setAutoCommit(false); //业务逻辑 //插入订单表,谁,什么时间 //插入订单明细表,上一步生产的订单号 //插入商品明细,商品单价 pstmt = conn.prepareStatement(INSERT_ORDER, new String[]{"id"});//获取主键名称 pstmt.setString(1, "威震天"); pstmt.setTimestamp(2,new java.sql.Timestamp(System.currentTimeMillis())); pstmt.executeUpdate(); //获取ID值 rs= pstmt.getGeneratedKeys(); int orderId =0 ; if(rs.next()){ orderId = rs.getInt(1); } System.out.println("order id:"+orderId); //事物2: pstmt = conn.prepareStatement(INSERT_DETIAL); pstmt.setInt(1, orderId); pstmt.setString(2, "Cube"); pstmt.setInt(3, 10); pstmt.setDouble(4, 5000); pstmt.executeUpdate(); System.out.println("订单明细已插入"); conn.commit(); } catch (Exception e) { try { conn.rollback(); } catch (SQLException sqkex) { // TODO Auto-generated catch block sqkex.printStackTrace(); } e.printStackTrace(); }finally { try { conn.setAutoCommit(true); if(conn !=null) conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

 

JDBC获取表的主键

标签:

热心网友 时间:2022-04-08 19:56

Statement暴露以下方法可以访问到主键:ResultSet getGeneratedKeys() throws SQLException;
为了简化该方法的使用,轻松获得RDBMS生成的主键,Spring内置了KeyHolder接口及GeneratedKeyHolder实现者。
下面的类的内置方法中都使用到了KeyHolder,可以使用他来访问主键。
JdbcTemplate: int update(PreparedStatementCreator psc,KeyHolder generatedKeyHolder) throws DateAccessException;
NamedParameterJdbcTemplate的两个update方法
SimpleJdbcInsert辅助类。
SqlUpdate辅助类。
等。
DataFieldMaxValueIncrementer继承链。
能够返回全局唯一、递增的取值,这种特性是企业应用的常见需求,考虑到RDBMS的不同情况,Spring提供了DataFieldMaxValueIncrementer接口,这些方法返回唯一的、递增的、不同类型的取值。
各个数据库底层都以此类为接口,来实现具体的业务逻辑。
比如:Oracle:OracleSequenceMaxValueIncrementer实现类采用Oracle数据库支持的序列发生器。
HsqlMaxValueIncrementer采用HSQLDB的表实现,从而模拟了序列发生器的行为等。
类似的还有:
MysqlMaxValueIncrementer
DerbyMaxValueIncrementer
SybaseMaxValueIncrementer
SqlServerMaxValueIncrementer
PostgreSqlSequenceMaxValueIncrementer
DB2SequenceMaxValueIncrementer
H2SequenceMaxValueIncrementer等等
Spring JDBC对行集的支持:
RowSet,用于它能够以JavaBean方式同RDBMS数据进行交互,因此比ResultSet更为灵活。
JdbcTemplate内置queryForRowSet()方法集合。
NamedParameterJdbcTemplate内置的queryForRowSet()方法集合。
都可以很方便的获取到RowSet对象,方便数据库的操作。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 云蚁物联与摄像头Wi-Fi连接成功,但摄像头语音提示设备选择错误是什么原因?_百度问一问 postgresql数据库,有没有这么一个每次查询返回的都是自增的id的函数... 如何在sql中插入记录时返回id(id为自动增长) 云蚁物联怎么通过ID连接 在mysql中插入一条记录并返回该记录的主键(主键是数据里自增的),我... 云蚁物联摄像头分享二维码国外连接不上 db2中插入数据后直接返回主键(子增列 id)的sql怎么写 烟台开发区工商局在哪。 插入一条新数据,如何返回主键值id,id是自动 云蚁物联怎么连 PostgreSQL数据库 tp添加数据后怎么获取添加的id 云蚁物联怎么连接不上摄像头- 问一问 postgresql怎么获取insert插入的新纪录的id值 云蚁物联第二次网线摄像头怎么连接手机- 问一问 PostgreSQL,insert一条记录,如何返回刚刚插入的这条记录的id。 云蚁物联摄像机删除后重新连接,怎么也连不上?为什么我家云蚁物联app 连接一次后就连不上,需手机重_百度问一问 - 信息提示 安吉游戏玩滚筒的意义 2021年的医保交不了怎么办? 云蚁物联wifi连接失败怎么弄 云蚁物联怎么连接第二个手机 烟台开发区住宅可不可以办理营业执照? asp 插入一条数据后返回该数据的主键ID 云蚁物联摄像头掉网后有机身二维码能远程连接吗? java 用 jdbc 插入一条信息返回当前信息的主键id 怎样写 oracle的数 ... 用SQL语句获得PostgreSQL表的主键 如何在postgresql中添加id自增列 关于postgresql中使用SEQUENCE的一个问题 烟台市新桥工商营业执照办处 postgresql对主键用什么数据类型 postgresql如何让主键自增 为什么我的mp3不能听下载的mp3格式的歌曲? 下载在MP3的歌为什么不能听了? 中级统计师考试都是选择题么 中级统计师考试要考什么? 中级统计师考试好不好过? 中级统计师考过的来 谁有233网校里2017中级统计师课件的,能够百度云的最好 急,腿上长的疙瘩! 夏天身上出汗时起的小疙瘩是什么,特别痒!!!