Mybatis pgsql在Mybatis中获取新增记录自增后的id
1.Mybatis中的写法
<!-- 添加信息 -->
<insert id="add" parameterType="java.util.HashMap">
<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="fid">
SELECT currval('t_pay_cancel_fid_seq'::regclass) AS fid
</selectKey>
INSERT INTO t_pay_cancel
(
pay_no,
arch_id,
cancel_reson,
add_oper
)
VALUES
(
#{pay_no},
#{arch_id},
#{cancel_reson},
#{add_oper}
)
</insert>
以下进行说明:
order="AFTER",代表执行完以下insert语句后再执行获取自增的语句。
keyProperty="fid",fid是自增列
't_pay_cancel_fid_seq'::regclass,是自增序列名,一般在表设计器中的自增序列字段可以看到该名称,获取到的自增值会添加到入参对象中,可以用HashMap对象map.get('fid')来获取。
2.如何获取自增值
HashMap<String, Object> hmap = new HashMap<String, Object>();
rc= payCancelDAO.add(hmap);
if(rc>0){
String fid=Comm.getString(hmap.get("fid"));
//获取的fid 就是自增值
}
定义一个hashmap类型入参hmap,会将自增值附加到该对象的fid键,可以通过hmap.get('fid')即可成功获取自增后的值。