SpringBoot集成mybatis连接oracle的图文教程
一、背景
在实际开发过程中是离不开数据库的,如果不使用任何框架,那么连接数据库的代码会散落在项目的各个地方,且容易出现各种连接数据库问题。
原始的连接数据库的步骤
- 1.加载驱动(什么数据库,就记载什么驱动)
- 2.获取连接
- 3.编写sql
- 4.创建statement
- 5.执行sql语句并处理结果
- 6.自下而上一次关闭连接(容易出现异常)
在实际开发中,操作数据库还是很频繁的,如果按照这个步骤连接数据库,会很影响性能,用户体验也不好。而mybatis内部封装了jdbc,开发人员只需要考虑sql语句的编写和处理返回结果,其余都封装好了,这样极
大程度减少了开发工作量。
二、整合过程
稀里糊涂的就整合好了,自己却是一脸蒙
springboot 集成mybatis连接oracle数据库的过程
1.tools:spring boot, idea,oracle,mybatis,maven…
2.在上一篇项目搭建成功的基础上:
2.1 在pom.xml 文件添加依赖:
注意:在下面这个地方能看到,说明依赖添加成功了:
如果没有:就需要手动添加依赖:
先下载驱动(ojdbc6.jar),cd到下载的ojdbc6.jar所在路径,执行命令
mvn install:install-file -dgroupid=com.oracle -dartifactid=ojdbc6 -dversion=11.2.0.1.0 -dpackaging=jar -dfile=ojdbc6.jar
出现build succes,说明成功了。但是文件位置可能不对,需要移到maven的reponsitory中。将生成的oracle文件拷贝到相应的目录下。
查看reponsitory的位置:
放的路径如下:
3. 依赖添加成功后,就需要配置mvc层
3.1 controller层:
3.2 service 层:
这里有个细节问题:这个dao可能会报错,但是不影响,如果看不习惯就在这里设置下:
3.3 dao层:注意:只有接口,没有实现类
3.4 entity 层:
3.5 在application.yml文件配置连接数据库:
在这里遇到了2个问题:
1.一直报这个驱动类找不到,但是这个驱动类jar包已经添加到项目了,并且我也反编译jar包,确认路径是对的。后来将target文件夹删掉重新编译,就没有问题了。
2.我用sys/root作为用户名/密码连接,报,拒接连接,让我创建sys连接并授权之类的,然后我就用/as sysdba登陆 创建了一个用户,如图所示(因为之前已经建立了c##root用户,这里就拿c##wx做例子):
由于tbl_person表是建立在sysdba用户下的,在c##root用户下不能查询,在次用户下想访问就需要将这个表单独授权给c##root用户,同时还需要建同义词,这样就可以省略前缀sys.,直接通过表名就可以操作。
如图所示:
3.6 入口函数配置扫描mapper,即:@mapperscan(“com.wx.springbootdemo.dao”)
3.7 mapper映射文件:
3.8 项目结构:
测试:先启动项目,然后如下访问:
另一种测试方法(spring boot 内嵌的tools),如下图:
个人感悟
-
mybatis
:虽然做到了代码和sql语句分离,但是无法做到数据库无关性,即换了一个数据库例如mysql,很多语句就得做修改。 -
hibernate
:是orm框架,做到了数据库无关性,很好的封装了底层jdbc。支持独特的hql查询,也支持原生的sql语句。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。