postgreSQL插入语句返回主键

来源:互联网 发布:lol域名 发展 编辑:程序博客网 时间:2024/06/05 14:28

SprimgMVCJDBC 操作postgreSql的时候,由于主键是自动增长的,所以插入时不需要制定id,但如何返回自动增长的主键呢?

 public <S extends AttachmentEnt> S save(S entity) {        <span style="color:#ff0000;">KeyHolder keyHolder = new GeneratedKeyHolder();</span>        String sql = "INSERT INTO wl_ent_attachment (ent_id, " +                "storage_type, key, mime_type, name, label, description, created_by, " +                "created_time, updated_by, edit_time, status) " +                "VALUES (:ent_id, :storage_type, :key, :mime_type, :name, :label, " +                ":description, :created_by, :created_time, :updated_by, :edit_time, :status)";        MapSqlParameterSource term = new MapSqlParameterSource();        term.addValue("ent_id", entity.getEntId());        term.addValue("storage_type", entity.getStorageType());        term.addValue("key", entity.getKey());        term.addValue("mime_type", entity.getMimeType());        term.addValue("name", entity.getName());        term.addValue("label", entity.getLabel());        term.addValue("description", entity.getDescription());        term.addValue("created_by", entity.getCreatedBy());        term.addValue("created_time", entity.getCreatedTime());        term.addValue("updated_by", entity.getUpdatedBy());        term.addValue("edit_time", entity.getEditTime());        term.addValue("status", entity.getStatus());        <span style="color:#ff0000;">getNamedParameterJdbcTemplate().update(sql, term, keyHolder);</span>        List keyList = keyHolder.getKeyList();        if (keyList != null && keyList.size() > 0) {            Map map = (Map) keyList.get(0);            <span style="color:#ff0000;">entity.setId(Long.parseLong(String.valueOf(map.get("id"))));</span>        }        return entity;    }
 利用KeyHolder即可返回自动增长的主键!

0 0
原创粉丝点击