SpringBoot Mybatis批量插入Oracle数据库数据

yizhihongxing

这里是详细的 SpringBoot Mybatis 批量插入 Oracle 数据库数据的攻略:

一、前置条件

在开始之前,需要确认以下前置条件的设置:

  1. 已经安装了 JDK 和 Maven。

  2. 已经安装了 Oracle 数据库,并且成功连接测试通过。

  3. 已经创建了对应的数据表,并且设置了正确的表结构和约束。

二、添加依赖

在项目的 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>
<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.9.0.0</version>
</dependency>

三、配置数据库连接

在项目的 application.properties 或 application.yml 文件中,添加 Oracle 数据库的连接配置:

spring.datasource.url=jdbc:oracle:thin:@localhost:1521:ORCL
spring.datasource.username=用户名
spring.datasource.password=密码
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver

其中,url 中的 localhost 和 1521 分别表示数据库的主机名和端口号,ORCL 表示数据库的 SID。

四、配置 Mybatis

在项目中,创建一个包名为 mapper 的文件夹,用于存放 Mybatis 的 Mapper 接口和 XML 配置文件。

1. 编写 Mapper 接口

创建一个名为 UserMapper 的 Java 接口,用于定义批量插入数据的方法:

@Repository
public interface UserMapper {
    void batchInsert(@Param("list") List<User> userList);
}

在接口的参数列表中,使用 @Param 注解指定传入的参数名称。

2. 配置 XML 文件

在 mapper 包下,创建一个名为 userMapper.xml 的文件,编写以下代码:

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
    <insert id="batchInsert">
        INSERT INTO USER (id, name, age) VALUES
        <foreach collection="list" item="item" index="index" separator=",">
            (#{item.id}, #{item.name}, #{item.age})
        </foreach>
    </insert>
</mapper>

其中,insert 标签的 id 属性与 Mapper 接口中的方法名称一致,使用 foreach 标签遍历传入的 List 集合,添加数据到 SQL 语句中。

五、编写代码

1. 实体类

创建一个名为 User 的实体类,用于存储需要插入的数据:

public class User {
    private Integer id;
    private String name;
    private Integer age;

    public User() {}

    public User(Integer id, String name, Integer age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    // getter 和 setter
}

2. Service 层

编写 Service 层的代码,调用 Mapper 接口定义的批量插入方法:

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public void batchInsert(List<User> userList) {
        userMapper.batchInsert(userList);
    }
}

3. Controller 层

编写 Controller 层的代码,调用 Service 层的批量插入方法:

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("/batchInsert")
    public String batchInsert() {
        List<User> userList = new ArrayList<>();
        userList.add(new User(1, "Tom", 20));
        userList.add(new User(2, "Jerry", 22));
        userList.add(new User(3, "Mike", 24));

        userService.batchInsert(userList);
        return "success";
    }
}

六、测试结果

执行 UserController 中的 batchInsert 方法,发送 POST 请求,可以将用户数据批量插入到 Oracle 数据库中。使用 SQL Developer 工具查询数据库,可以看到成功插入了三条数据。

select * from USER;
ID NAME AGE
1 Tom 20
2 Jerry 22
3 Mike 24

七、示例代码

以下是完整的示例代码,供参考和学习:

1. User.java

public class User {
    private Integer id;
    private String name;
    private Integer age;

    public User() {}

    public User(Integer id, String name, Integer age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    // getter 和 setter
}

2. UserMapper.java

@Repository
public interface UserMapper {
    void batchInsert(@Param("list") List<User> userList);
}

3. userMapper.xml

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
    <insert id="batchInsert">
        INSERT INTO USER (id, name, age) VALUES
        <foreach collection="list" item="item" index="index" separator=",">
            (#{item.id}, #{item.name}, #{item.age})
        </foreach>
    </insert>
</mapper>

4. UserService.java

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public void batchInsert(List<User> userList) {
        userMapper.batchInsert(userList);
    }
}

5. UserController.java

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("/batchInsert")
    public String batchInsert() {
        List<User> userList = new ArrayList<>();
        userList.add(new User(1, "Tom", 20));
        userList.add(new User(2, "Jerry", 22));
        userList.add(new User(3, "Mike", 24));

        userService.batchInsert(userList);
        return "success";
    }
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot Mybatis批量插入Oracle数据库数据 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Spring Data JPA 之 JpaRepository的使用

    下面将为您详细讲解Spring Data JPA之JpaRepository的使用攻略。 什么是JpaRepository? JpaRepository是Spring Data JPA提供的一个接口,它继承自PagingAndSortingRepository接口,同时它还继承了CrudRepository接口,提供了一些与业务相关的方法,如save、del…

    Java 2023年5月20日
    00
  • Java swing实现的计算器功能完整实例

    下面我将详细讲解如何实现“Java swing实现的计算器功能完整实例”。 简介 在介绍具体的实现方法之前,先简单介绍一下Java Swing。Swing是Java平台上的一组GUI(Graphical User Interface)构件库。它提供了一整套丰富的GUI构件,例如按钮、文本框、标签等。在Java中,通过将这些构件进行组合,就可以构建出各种各样的…

    Java 2023年5月19日
    00
  • vue2+springsecurity权限系统的实现

    下面我来详细讲解“vue2+springsecurity权限系统的实现”的完整攻略。 一、前后端分离架构说明 前后端分离架构是近年来比较流行的一种架构模式,其核心思想就是将前端与后端完全分离,前端负责 UI 的实现和展示,后端则提供数据接口 API。这种架构模式的优点是前后端职责分离,能提高开发效率和维护性,同时能提供更好的用户体验和响应速度。 二、技术选型…

    Java 2023年6月3日
    00
  • JavaWeb开发入门第一篇必备知识讲解

    关于“JavaWeb开发入门第一篇必备知识讲解”的完整攻略,下面是详细的说明: JavaWeb开发入门第一篇必备知识讲解 什么是JavaWeb? JavaWeb是Java语言在Web应用程序领域中的应用,主要包括Servlet、JSP、Web服务等技术。JavaWeb技术架构主要是基于MVC思想,即模型(M)-视图(V)-控制器(C)。 Servlet Se…

    Java 2023年5月30日
    00
  • Java基础教程之八大基本数据类型

    Java基础教程之八大基本数据类型 在Java中,基本数据类型指的是不同类型的数据的原始值,它们是Java程序设计的基础。Java中有八种基本数据类型,分别是: byte:8位有符号整数,取值范围为-128到127; short:16位有符号整数,取值范围为-32768到32767; int:32位有符号整数,取值范围为-2147483648到2147483…

    Java 2023年5月26日
    00
  • Java下载文件的四种方式详细代码

    下面我将为您详细讲解Java下载文件的四种方式和完整代码。 一、使用Java自带的URL类进行文件下载 使用Java自带的URL类可以方便地进行文件下载,步骤如下: 创建一个URL对象,指定需要下载的文件链接。 打开 URL 连接,获取 InputStream 对象,用于读取远程文件流。 创建文件输出流对象,用于保存下载的文件。 读取远程文件并将其写入到本地…

    Java 2023年5月20日
    00
  • 在 Linux 上安装Apache+ApacheJServ+JSP

    安装Apache和Apache JServ: 首先在终端中运行以下命令更新软件包列表: sudo apt-get update 接着,运行以下命令安装Apache和Apache JServ: sudo apt-get install apache apache-jserv 安装完成后,Apache服务会自动启动。可以在浏览器中输入localhost,来查看A…

    Java 2023年6月15日
    00
  • SpringMVC返回json数据的三种方式

    在 Spring MVC 中,我们可以使用三种方式来返回 JSON 数据。本文将详细讲解这三种方式,包括使用 @ResponseBody 注解、使用 ResponseEntity 类和使用 MappingJackson2JsonView 视图,并提供两个示例说明。 使用 @ResponseBody 注解 在 Spring MVC 中,我们可以使用 @Resp…

    Java 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部