public long addMsg(final SysMessage sysMessage){ final String sql = "INSERT INTO sys_message (title,send_time,type,kugouIds,is_send) values(?,?,?,?,?) "; // jdbc.update(sql, sysMessage.getTitle(),sysMessage.getSendTime(),sysMessage.getType(), sysMessage.getKugouIds(),sysMessage.getIsSend() ); KeyHolder keyHolder = new GeneratedKeyHolder(); jdbc.update(new PreparedStatementCreator(){ @Override public PreparedStatement createPreparedStatement(Connection conn) throws SQLException{ PreparedStatement ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.setString(1, sysMessage.getTitle()); ps.setTimestamp(2, new Timestamp(sysMessage.getSendTime().getTime())); ps.setInt(3, sysMessage.getType()); ps.setString(4, sysMessage.getKugouIds()); ps.setInt(5, sysMessage.getIsSend()); return ps; } }, keyHolder); long msgId = keyHolder.getKey().longValue(); return msgId; }
使用org.springframework.jdbc.support.KeyHolder的getKey()方法