springJdbc 插入數據返回主鍵

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()方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章