0 0

关于mybatis运行oracle下的批次新增报错!10

大家好,想问一下,有谁用mybatis在oracle数据库下批次新增?我在mysql下没问题,但在oracle下执行报错!
比如我的执行配置:
<insert id="addBatch" parameterType="TestBean">
INSERT INTO t_test
(id, prop_name)
VALUES
<foreach collection="list" item="item" index="index"
separator=",">
(#{item.id, jdbcType=NUMERIC}, #{item.propName, jdbcType=VARCHAR})
</foreach>
</insert>

报错信息:
### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束

### The error may involve com.mzl.module.test.mybatis.mapper.TestMapper.addBatch-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO t_test   (id, prop_name)   VALUES         (?, ?)    ,     (?, ?)
### Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束

; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束

希望各位给点帮助,多谢了!
2012年6月27日 13:30

4个答案 按时间排序 按投票排序

0 0

这样写
begin
<foreach collection="list" item="item" index="index"
separator=";"> <!--分号 注意-->
INSERT INTO t_test
(id, prop_name)
VALUES
(#{item.id, jdbcType=NUMERIC}, #{item.propName, jdbcType=VARCHAR})
</foreach>
;end;

2012年10月10日 08:12
0 0

oracle中用insert into xxx values (xxx,xxx),(xxx,xxx) 这种语法应该通不过的

要用这种

insert into  t_test (id, prop_name) 
select 1,'aaa' from dual union all  
select 2,'bbb' from dual union all
select 3,'ccc' from dual;  

2012年6月27日 18:31
0 0

改用 insert all

2012年6月27日 14:37
0 0

这样写是不对的,不是ibatis的问题,而是oracle本来就不支持这样的语法。可以这样试试:
<insert id="addBatch" parameterType="TestBean">
INSERT INTO t_test
(id, prop_name)
<foreach collection="list" item="item" index="index"
separator=" union   all ">
select #{item.id, jdbcType=NUMERIC}, #{item.propName, jdbcType=VARCHAR} from from dual
</foreach>
</insert>

这样虽然可以,但是不是一个好办法,希望一条一条插入,然后批量提交sql。

2012年6月27日 13:45

相关推荐

    技巧:MyBatis 中的trim标签,好用!.zip

    mybatis 技巧:MyBatis 中的trim标签,好用!.zip技巧:MyBatis 中的trim标签,好用!.zip技巧:MyBatis 中的trim标签,好用!.zip技巧:MyBatis 中的trim标签,好用!.zip技巧:MyBatis 中的trim标签,好用!.zip...

    mybatis连接oracle实例

    本实例将指导你如何使用MyBatis连接Oracle数据库,并在Oracle中创建一个名为`test`的表。 首先,确保你已经安装了Eclipse集成开发环境、JDK、Oracle数据库以及MyBatis框架。Oracle数据库需要设置相应的环境变量,如...

    Oracle+Mybatis的foreach insert批量插入报错的快速解决办法

    在Oracle数据库中使用MyBatis的`&lt;foreach&gt;`标签进行批量插入时,可能会遇到“SQL命令未正确结束”的错误。这个问题通常由于Oracle数据库对批量插入语句的语法要求与MySQL等其他数据库系统不同所导致。以下是对这个...

    SpringBoot+mybatis+Oracle整合代码

    在"SpringBoot+mybatis+Oracle整合代码"中,我们可以学习到以下几个关键知识点: 1. **SpringBoot的自动配置**:SpringBoot的核心特性之一就是自动配置,它能根据项目中的依赖自动配置相应的Bean。在整合MyBatis时...

    mybatis + oracle demo

    【标题】"mybatis + oracle demo"是一个关于如何结合MyBatis框架与Oracle数据库进行实际操作的示例项目。这个项目旨在为初学者提供一个简单易懂的起点,帮助他们快速掌握MyBatis在Oracle环境下的应用。 【描述】...

    idea配置maven+Springboot+mybatis+oracle

    本知识点将详细介绍如何在Idea中配置Maven、Spring Boot、MyBatis以及Oracle数据库,实现一个完整的Java Web项目架构。 **一、配置Maven** 1. **安装Maven**: 首先确保你的系统中已经安装了Maven,可以在命令行...

    mybatis-oracle逆向工程工具

    MyBatis-Oracle逆向工程工具是一款高效实用的开发辅助软件,专为使用MyBatis框架和Oracle数据库的开发者设计。这款工具的核心功能是自动生成与数据库表结构对应的MyBatis映射文件、实体类以及DAO接口,极大地提高了...

    MyBatis 入门教程,超详细!!!

    Mybatis 入门到放弃

    springboot整合mybatis调用oracle存储过程

    springboot继承mybatis后,通过mybatis调用oracle数据库中创建的存储过程,并获取通过游标返回的数据。

    mybatis 整合oracle (含增删改查)

    在实际开发中,将 MyBatis 整合到 Oracle 数据库进行数据操作,包括增删改查,是常见的需求。以下将详细介绍这个过程。 1. **环境准备** - **Oracle 数据库**:首先确保你已经安装并配置了 Oracle 数据库,创建好...

    MyBatis总结!!!!!

    MyBatis总结!!!!!

    基于springboot+mybatis+oracle的校园闲置物品交易系统源码(高分毕设).zip

    基于springboot+mybatis+oracle的校园闲置物品交易系统源码(高分毕设).zip 基于springboot+mybatis+oracle的校园闲置物品交易系统源码(高分毕设).zip 基于springboot+mybatis+oracle的校园闲置物品交易系统源码...

    mybatis连接Oracle所用的jar包

    在使用MyBatis与Oracle数据库进行交互时,通常需要一些特定的库来确保连接和操作的顺利进行。这里提到的两个jar包,"ojdbc6.jar"和"mybatis-3.4.4.jar",正是实现这一目的的关键组件。 首先,"mybatis-3.4.4.jar"是...

    JAVA SpringMVC+mybatis(oracle 和 mysql) HTML5 后台框架 bootstrap.docx

    JAVA SpringMVC+mybatis(oracle 和 mysql) HTML5 后台框架 bootstrap.docxJAVA SpringMVC+mybatis(oracle 和 mysql) HTML5 后台框架 bootstrap.docxJAVA SpringMVC+mybatis(oracle 和 mysql) HTML5 后台框架 ...

    springboot +mybatis+oracle 配置多个数据源,配置两个数据库信息

    本配置示例将详细介绍如何在Spring Boot中整合MyBatis与Oracle数据库,并配置两个不同的数据源。 首先,我们需要理解数据源(DataSource)的概念。数据源是Java应用程序与数据库之间的桥梁,它负责管理数据库连接,...

    SpringBoot+Mybatis+Oracle代码demo

    在本项目"SpringBoot+Mybatis+Oracle代码demo"中,开发者旨在提供一个集成SpringBoot、Mybatis和Oracle数据库的示例,以帮助初学者更好地理解和应用SpringBoot框架。下面将详细阐述这三个核心技术及其在项目中的应用...

    Mybatis返回int或者Integer类型报错的解决办法

    总之,解决Mybatis返回`int`或`Integer`类型报错的问题,你可以: 1. 将Mapper方法的返回类型改为`Integer`,以允许返回`null`。 2. 在SQL查询中使用`NVL()`, `IFNULL()`, `ISNULL()`或`COALESCE()`函数来确保在没有...

    springboot+mybatis+oracle源码

    【标题】"springboot+mybatis+oracle源码"揭示了这个项目是基于Spring Boot框架,结合MyBatis持久层框架以及Oracle数据库实现的一个应用程序。Spring Boot以其简化配置和快速开发的特点,常被用于构建微服务和单体...

    spring+mybatis+oracle简易案例

    8. **运行测试**:创建`springTest`目录下的测试类,使用JUnit进行单元测试,确保Spring和MyBatis的整合以及Oracle数据库操作正常工作。 在实际开发中,还需要注意以下几个关键点: - **事务管理**:Spring提供了...

    maven+spring+springmvc+mybatis+oracle的整合,使用idea。

    "maven+spring+springmvc+mybatis+oracle"的整合就是一个典型例子,它涉及到项目的构建管理、依赖注入、MVC模式、数据库操作以及持久层框架等多个方面。下面我们将详细探讨这些技术组件及其整合方式。 首先,Maven...

Global site tag (gtag.js) - Google Analytics