MyBaits Insert返回主键

来源:互联网 发布:7zip解压软件下载 编辑:程序博客网 时间:2024/05/30 05:26

关于MyBaits insert返回主键的方法网上有很多方法介绍、但是大多都是基于传递参数为实体的情况(parameterType=“POJO”)、个人感觉Mybatis主要就是灵活、如果在写很多POJO那为什么不直接使用hibernate呢,希望有朋友回复下你们用POJO的方式还多吗?

以下基于MyBaits+MySQL/PostgreSQL

代码片段未使用 IDE编辑器,如有错误希望评论里面指正,有空来修改,O(∩_∩)O谢谢


  1. Insert传递Map返回主键:

interface 【接口定义】

void insertXX(@param("params") Map<String,Object> paramMaps)

xxMapper.xml 【MyBaits映射文件】

<insert id="insertXX" useGeneratedKeys="true" keyProperty="param.id" parameterType="Map" INSERT INTO tableName(name,age) VALUSE("zsh","xx")</insert>
  • 上面的 keyProperty 中的 param 对用 接口中的参数别名!
  • userGeneratedKeys代表是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。
  • 接口定义返回 void 就可以。

service 【服务层使用】

package com.zsh.demo;public class MyBatisInsert{    @autowired    private XxInter xxInter;    //代表上面定义的接口    public void testInsert(){        Map<String,Object> paramMaps = new HashMap<String,Object>();        paramMaps.put("name","zsh");        paramMaps.put("age",xx);        xxInter.insert(paramMaps);        //获取自增的主键,注意了:圈起来要考的!O(∩_∩)O~        int id = paramMaps.get("id"); //这个id 就是自增主键        ......    }}

关于传递参数为实体POJO怎么获取自增网上已经很多了,就不在此介绍了!

1 0
原创粉丝点击