Spring Boot实现简单的Oracle数据库操作

使用到的技术:

  1. Spring Boot:用于简化Spring应用的开发。

  2. Dynamic DataSource:实现动态多数据源的访问和切换

  3. Oracle JDBC Driver:与Oracle数据库进行连接和交互。

  4. Mybatis-Plus:简化SQL映射和数据库访问。其中BaseMapper接口提供了对数据表进行基本操作的功能。

  5. Lombok:用于简化Java类的开发,自动生成常用的代码,比如getter、setter、构造函数等。

  6. Spring MVC:用于处理http请求和相应,提供了控制层的功能。

实现步骤如下:

  • 创建Spring Boot项目:使用 Spring Initializr 创建一个 Spring Boot 项目。
  • 添加依赖:pom.xml配置文件中添加Maven依赖
XML 复制代码
        <!-- mybatis-plus Mybatis是开源的java数据库框架-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>${mybatis-plus.version}</version>
        </dependency>

        <!--动态多数据库连接,用于管理多个数据源-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!-- Oracle JDBC Driver -->
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <version>19.8.0.0</version>
        </dependency>
  • 配置数据库连接:在application.properties中配置Oracle数据库连接信息
XML 复制代码
#oracle
spring.datasource.dynamic.primary=anita  #给这个数据源命名
spring.datasource.dynamic.datasource.anita.url=your database url
spring.datasource.dynamic.datasource.anita.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.dynamic.datasource.anita.username=username
spring.datasource.dynamic.datasource.anita.password=password
  • 定义数据模型:创建一个与要操作的数据表对应的java实体类
java 复制代码
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data  //使用Lombok自动生成getter setter方法,以及toString、equals和hashCode方法
@TableName(value = "base_person") //指定该类为对应数据库的base_person表
@NoArgsConstructor //生成无参构造函数
@AllArgsConstructor //生成全参构造函数
public class BasePerson implements Serializable { //Serializable 使BasePerson类支持序列化
    private String id;
    private String name;
}
  • 创建Mapper:创建一个mapper接口
java 复制代码
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.model.BasePerson;
import org.apache.ibatis.annotations.Mapper;

@Mapper// 标识这是一个MyBatis Mapper 接口,用于执行数据库操作
@DS("anita") //使用指定名为anita的数据源
public interface BasePersonMapper extends BaseMapper<BasePerson> { //继承了 MyBatis Plus 提供的基本 CRUD 操作方法。
}
  • 编写服务层:在服务层中注入Mapper,并编写业务逻辑(比如根据用户id查询用户名)
java 复制代码
import com.example.repository.BasePersonMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class DbService {
    @Autowired
    private BasePersonMapper personMapper;

    public String getNameById(String id) {
        return personMapper.selectById(id).getName();
    }
}
  • 创建控制器:编写API进行数据访问
java 复制代码
import com.example.service.DbService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/test")
public class TestController {
    @Autowired
    private DbService dbService;

    @GetMapping(value = "/getPersonName")
    public  String GetPersonName(String id){
        return dbService.getNameById(id);
    }
}
相关推荐
Elastic 中国社区官方博客1 小时前
Elasticsearch:使用 Agent Builder 的 A2A 实现 - 开发者的圣诞颂歌
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
GetcharZp1 小时前
拒绝低效!这款神器,让你的终端效率起飞 | 深度解析 fzf 终极指南
后端
2301_816660211 小时前
PHP怎么处理Eloquent Attribute Inference属性推断_Laravel从数据自动推导类型【操作】
jvm·数据库·python
自珍JAVA2 小时前
高效处理Long列表与集合运算:基于RoaringBitmap的工具类解析与应用场景
后端
小码哥_常2 小时前
Spring Boot项目上线秘籍:日志、监控、异常处理全攻略
后端
qq_372154232 小时前
Go 中自定义类型与基础类型的显式转换规则详解
jvm·数据库·python
GreenTea3 小时前
AI 时代,工程师的不可替代性在哪里
前端·人工智能·后端
_下雨天.3 小时前
NoSQL之Redis配置与优化
数据库·redis·nosql
LiAo_1996_Y3 小时前
CSS如何实现文字渐变效果_通过background-clip实现艺术字
jvm·数据库·python
2401_887724503 小时前
CSS如何让表单在手机端友好展示_利用Flexbox实现堆叠排版
jvm·数据库·python