使用springJDBCTemple返回插入数据的id

今天项目中遇到了需要返回插入数据的id 的一项业务(数据库id自动增长),数据库连接使用spring jdbctemplate,网上查了一下发现结合spring使用的比较少,所以记录下我的实现方法:

			final Star star = getStarInfo();
			KeyHolder keyHolder = new GeneratedKeyHolder();

			row = this.jt.update(new PreparedStatementCreator() {
				@Override
				public PreparedStatement createPreparedStatement(Connection con)
						throws SQLException {
					PreparedStatement ps = con.prepareStatement("insert into `star`(`stype`,`name`) values (?,?)",
							Statement.RETURN_GENERATED_KEYS);
					ps.setInt(1, star.getStype());
					ps.setString(2, star.getName());
			return ps;
				}
			}, keyHolder);
			// 获取插入记录的id
			Long generatedId = keyHolder.getKey().longValue();

  
这里的generatedId 就是刚刚插入那条记录的ID. 注意Statement.RETURN_GENERATED_KEYS一定要加上.

 

你可能感兴趣的:(java,spring)