MyBatis-Oracle-selectKey返回主键

SelectKey在Mybatis中是为了解决Insert数据时不支持主键自动生成的问题,他可以很随意的设置生成主键的方式。

Mapper(Oracle)

<insert id="insertWxshLogOut"  parameterType="java.util.HashMap">
    <selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
        select wxsh_seq.nextval as id from dual
    </selectKey>
    INSERT INTO WXSH_LOG_OUT
    (ID,
     OUT_NO,
     USER_ID,
     FILE_NAME,
     CREATE_AT,
     IP,
     CONTENT,
     OUT_NUM,
     UNIT_NO,
     STATUS)
    VALUES
        (#{id},
         #{out_no},
         #{user_id},
         #{file_name},
         SYSDATE,
         #{ip},
         #{content},
         #{out_num},
         #{unit_no},
         #{status})
</insert>

Service

public int addWxshLogOut(Map map) {
    try {
        DataSourceTypeManager.set(DataSources.GJT);
        welfareConfirmMapper.insertWxshLogOut(map);
        return Integer.parseInt(String.valueOf(map.get("id")));
    } catch (Exception e) {
        logger.error(e.getMessage());
    }
    return 0;
}

map中会增加返回的主键id

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 11,165评论 0 4
  • Java数据持久化之mybatis 一. mybatis简介 1.1 原始的JDBC操作: Java 通过 Jav...
    小Q逛逛阅读 10,465评论 0 16
  • 11 MyBatis一级缓存实现# 11.1 什么是一级缓存? 为什么使用一级缓存?## 每当我们使用MyBati...
    七寸知架构阅读 13,702评论 12 143
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,039评论 18 399
  • 依赖倒置原则(DIP)原则的原始定义: 高层模块不应该依赖低层模块,两者都应该依赖其抽象。 抽象不应该依赖细节。 ...
    hukei阅读 3,490评论 0 0