Mybatis(Oracle)批量插入、批量更新、批量删除

mybatis映射中可以通过<foreach></foreach>标签来实现Oracle的批量插入、更新和删除
    <foreach>标签中主要有以下属性:
    collection、item、index、open、separate、close
    collection:该属性必须指定,指代Dao层接口传递的数据类型,主要有三种:
        ①:list集合类型;collection=”list“
        ②:array数组类型;collection=”array“
        ③:map映射类型;collection=”map“
    item:别名,表示集合中每一个元素迭代时的别名,获取数据时必须指定用别名来指定,不然会报错。
    index:迭代下标,即迭代过程中的位置。
    open:表示语句以什么开始。
    separate:表示每次迭代之间以什么符号作为分割。

    close:表示语句以什么结束。

一、批量插入
    Oracle中可以使用java中的for循环逐条插入数据库,但是这种效率比较低,不适合一次性插入大量的数据,所以可以利用Oracle中的“dual”表
    实现批量处理,并且效率高
    比如有这样一张表

在Spring Boot项目中整合MyBatis框架和Oracle数据库时,批量插入操作通常涉及到以下几个步骤: 1. **配置数据源**:在Spring Boot的`application.properties`或`application.yml`文件中配置Oracle的数据源,包括URL、用户名和密码。 ```properties spring.datasource.url=jdbc:oracle:thin:@//localhost:1521/SID spring.datasource.username=your_username spring.datasource.password=your_password ``` 2. **添加依赖**:在`pom.xml`文件中引入MyBatisOracle JDBC驱动相关的依赖。 ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc11</artifactId> </dependency> ``` 3. **创建Mapper接口**:在`src/main/java/mapper`目录下创建一个Mapper接口,并定义批量插入的方法,例如使用`insertList`方法。 ```java @Mapper public interface YourMapper { void insertList(List<YourEntity> entities); } ``` 4. **编写XML映射文件**(如果你使用的是MyBatis XML映射方式):在`resources/mapper`目录下创建对应的XML文件,定义SQL插入语句。 ```xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.yourpackage.YourMapper"> <insert id="insertList" parameterType="java.util.List"> INSERT INTO your_table (column1, column2) VALUES <foreach item="item" index="index" collection="list" open="(" separator="),(" close=")"> (:column1, :column2), </foreach> </insert> </mapper> ``` 5. **在Service或Repository中调用批量插入**:注入Mapper对象,然后通过Mapper的`insertList`方法执行批量插入。 ```java @Autowired private YourMapper yourMapper; public void batchInsert(List<YourEntity> entities) { yourMapper.insertList(entities); } ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值