mybatis如何获取oracle新插入数据记录的主键?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis如何获取oracle新插入数据记录的主键?相关的知识,希望对你有一定的参考价值。
mybatis使用oracle插入一条数据成功后,如何抓取该条记录的主键(改主键是:sequence机制实现的)。注意并发性问题,如果是获取最后一个seq,那这个有并发性问题。
参考技术A 确定是oracle吗? 参考技术B <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">insert into user(userName,password,comment)
values(#userName,#password,#comment)
</insert>
User user = new User();
user.setUserName("chenzhou");
user.setPassword("xxxx");
user.setComment("测试插入数据返回主键功能");
System.out.println("插入前主键为:"+user.getUserId());
userDao.insertAndGetId(user);//插入操作
System.out.println("插入后主键为:"+user.getUserId());
User user = new User();
user.setUserName("chenzhou");
user.setPassword("xxxx");
user.setComment("测试插入数据返回主键功能");
System.out.println("插入前主键为:"+user.getUserId());
userDao.insertAndGetId(user);//插入操作
System.out.println("插入后主键为:"+user.getUserId());
输出:
插入前主键为:0
插入后主键为:15追问
是不是在insert语句后里面加入:useGeneratedKeys="true" keyProperty="主键名称"即可?
追答是的
本回答被提问者和网友采纳如何获取 blob 类型的数据以在 oracle 中插入?
【中文标题】如何获取 blob 类型的数据以在 oracle 中插入?【英文标题】:how to obtain blob type data for insertion in oracle? 【发布时间】:2022-01-15 08:15:40 【问题描述】:你好朋友,我的 blob 数据类型有问题,我想将一些数据从一个 bd 迁移到另一个 bd 但是我无法迁移一些具有 blob 类型列的表,我尝试的是导出一个单条记录方式如下。
首先我选择要导出到其他 bd 的记录
select TEMPLATE_DOCUMENT_ID,blob_file from example_table where template_document_id = 32;
然后我导出结果得到插入
我配置如下
当我这样做时,我会得到一个包含我要迁移的记录数据的脚本
如果我运行它,它会给我以下错误
Error report -
ORA-01465: invalid hex number
您知道如何获得正确的数据来进行插入吗?
注意:从一个 ORACLE 数据库迁移到另一个 ORACLE 数据库。
【问题讨论】:
那个插入语句看起来不对;根据文档,连接运算符仅适用于字符串。最新版本的 SQL Developer 在导出为插入语句时会静默跳过 BLOB 列;你用的是哪个版本? This might be helpful though. @AlexPoole 我试过这种方式,但它不会生成我的文件 【参考方案1】:显然源数据库是Oracle。你没有提到目标数据库是什么。如果它也是 Oracle,我建议使用 Oracle 数据泵工具 (expdp/impdp)。文档在这里:https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm
如果您需要它,至少我经常使用它是该工具的 VIEW_AS_TABLE 选项,因为它允许我导出数据的子集。
【讨论】:
以上是关于mybatis如何获取oracle新插入数据记录的主键?的主要内容,如果未能解决你的问题,请参考以下文章
Oracle整合Mybatis实现list数据插入时,存在就更新,不存在就插入以及随机抽取一条记录