mybatis在Oracled插入数据返回主键ID

数据库的操作

创建序列

新增一个表对应的 序列

注:序列名最好是跟表对应的,例如 USER_SEQ 最小值:1 步进:1 从 0 开始 没有循环

CREATE SEQUENCE 序列名 MINVALUE 1 INCREMENT BY 1 START WITH 0 NOCACHE

忽略控制层的操作,直接进入服务层开始

mapper层 编写对应的接口 注意 传入的pageDate 是封装的Map 后面返回主键需要用到

public interface UserManager{
    /**新增
     * @param pd
     */
    void save(PageData pd)throws Exception;
}

lmpl层 实现User接口 调用mybatis

public class UserService implements UserManager{
    /**新增
     * @param pd
     */
    @Override
    public void save(PageData pd)throws Exception{
       pd.put("GMT_CREATE", DateUtil.now());  //创建时间
       pd.put("GMT_MODIFIED", DateUtil.now());    //更新时间
       dao.save("UserMapper.save", pd);
    }
}

mybatis中的写法,重点:在插入数据之前 查询新增的序列,他会自动赋值到传入的数据模型:PageData 中

DateUtil.now() 引入的是 HuTool 的工具包

public class UserService implements UserManager{
    /**新增
     * @param pd
     */
    @Override
    public void save(PageData pd)throws Exception{
       pd.put("GMT_CREATE", DateUtil.now());  //创建时间
       pd.put("GMT_MODIFIED", DateUtil.now());    //更新时间
       dao.save("UserMapper.save", pd);
    }
}

然后在最开始调用新增数据的 用户数据模型.KEY的方式获取即可

// 伪代码
public void saveUser(PageData pd) throws Exception {
    pd.put("USER_NAME", pd.get("USER_NAME"));  //用户名
    userService.save(pd);
    System.out.println("返回的数据:" + pd);
    System.out.println("返回的主键ID:" + pd.get("USER_ID"));
}

到此整个流程结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值