springboot 使用mybatis连接Oracle的步骤

公司使用的数据库是Oracle,有一个新项目需要使用springboot搭建微服务的工程,碰到了一些问题。现在此记录

  1. JDK1.8时Oracle驱动应该用那个?

如下:

之前公司同事给我提供的是ojdbc14的驱动jar,但是在jkd1.8的环境下会有问题,反复研究后发现,ojdbc14不支持jdk1.8。所以在Oracle官网查询发现ojdbc7 是支持的。

<!-- 添加ojdbc7驱动 -->
    <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc7</artifactId>
            <version>12.1.0.2</version>
        </dependency>

还需要加入一个mybatis的pom依赖;

版本的话自行确定,这里有一个小问题,如果你的pom文件中有spring-mybatis这个依赖,启动的时候会报错,

所以加入这个mybatis-spring-boot-starter之后要把之前spring整合mybatis的pom去掉!

<dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>1.3.2</version>
</dependency>

加入依赖之后,咱们现在来说说配置文件

首先我的目录结构是这样的:

springboot会自动加载resrouces下的mapper.xml文件

如果放在别处会识别不到,这个是我踩过坑,建议直接在resrouces下新建mapper.xml

配置文件的话我选择是application.properties文件

yml文件同理

配置文件如下:

server.port=9999
//这个是mybatis的扫描路径配置;一开始没有配置下面这个报错,绑定错误,找不到绑定,配置就没事了,
//个人目前不知道是为什么;建议配置
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.pojo.Student


spring.datasource.url=jdbc:oracle:thin:@xx.xx.xx.xx:1521:orcl
spring.datasource.username=xxx
spring.datasource.password=xxx
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

最后,结果先说一下;

 

这里有一个小问题:

就是在返回的时候如果是直接返回一个pojo的话,mybatis默认是返回getOne;也即是说如果你的数据库中有多条数据那么会报错

报错如下:

<select id="selectStudent" resultType="com.example.demo.pojo.Student">

    select * from STUDENT

</select>

解决办法很简单,就是把返回值改为

List<Student> ...这种形式

这次整合Oracle其实踩了很多坑;

比如, ojdbc7的jar,如果直接从maven中央库下载的话粘贴到本地库在idea中是无法加载的

这里如果需要手动配置进来,需要使用 这个命令

mvn install:install-file -Dfile=xx.jar -DgroupId=xx -DartifactId=xx -Dversion=xx -Dpackaging=jar

解释如下:

-Dfile: jar的所在路径+jar包名+.jar

-DgroupId: 对应maven坐标的groupId

-DartifactId: 对应maven坐标的artifactId

-Dverson: 对应maven坐标的version

如果你在电脑中使用这个命令灭有效果,或者报错,首先建议检查下maven的环境变量有没配置。

jdk的环境变量有没有配置

我自己的电脑是Mac, maven的环境变量没有配置刚开始就一直纠结哪儿的问题,

后来搜了很多文章,才把这个环境变量配置好。

因为本人对shell和Mac不熟悉耽误了很多功夫。。。。惭愧啊

希望可以帮到大家

 

 

 

 

 

 

首先,需要在pom.xml文件中添加以下依赖: ```xml <!-- Spring Boot MyBatis Oracle --> <dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8</artifactId> <version>18.3.0.0</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> ``` 然后,在application.properties中配置Oracle数据库连接信息: ```properties # Oracle 数据源配置 spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver spring.datasource.url=jdbc:oracle:thin:@//localhost:1521/orcl spring.datasource.username=your_username spring.datasource.password=your_password ``` 接着,创建一个Mapper接口和对应的Mapper XML文件。例如,我们创建一个UserMapper接口,对应的Mapper XML文件为UserMapper.xml。 UserMapper接口: ```java public interface UserMapper { List<User> findAll(); } ``` UserMapper.xml文件: ```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.mapper.UserMapper"> <select id="findAll" resultType="com.example.entity.User"> select * from user </select> </mapper> ``` 最后,在Spring Boot应用程序中使用Mapper接口即可: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public List<User> findAll() { return userMapper.findAll(); } } ``` 以上就是Spring Boot和MyBatis集成Oracle数据库步骤
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值