公司使用的数据库是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不熟悉耽误了很多功夫。。。。惭愧啊

希望可以帮到大家

 

 

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐