SpringBoot集成mybatis连接oracle的图文教程

目录
  • 一、背景
    • 原始的连接数据库的步骤
  • 二、整合过程
    • 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 文件添加依赖:

<!-- Mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- 与数据库操作相关依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- oracle -->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.1.0</version>
        </dependency>

注意:在下面这个地方能看到,说明依赖添加成功了:

如果没有:就需要手动添加依赖:

先下载驱动(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层:

 //第一行可以写 @Restcontroller(返回json的controller)
//@Restcontroller = @Controller + @ResponseBody
@Controller
public class PersonController {
    @Resource
    private PersonIService personIService;
    @RequestMapping("/person")
    @ResponseBody//json返回
    public List<Person> findAll(){
       List<Person> list = personIService.findAll();
        return list;//[{},{}]
    }
    @RequestMapping("/findPersonByid/{id}")
    @ResponseBody//返回json类型
    public Person findByid(@PathVariable("id") Integer id){
        return personIService.findByid(id);//{}
    }
}

3.2 service 层:

	@Service
public class PersonServiceImpl implements  PersonIService{
    @Autowired
    private IPersonDao dao;
    public List<Person> findAll(){
        return dao.findAll();
    }
     public Person findByid(Integer id){
        return dao.findByid(id);
    }

这里有个细节问题:这个dao可能会报错,但是不影响,如果看不习惯就在这里设置下:

3.3 dao层:注意:只有接口,没有实现类

//不使用@Mapper注解,通过使用.xml文件,在对应的.xml写sql语句,查出数据并返回
public interface IPersonDao {
    public List<Person> findAll();
    public Person findByid(@Param("id") Integer id);
}
另外一种方法(拿其他栗子举例):
//使用了@Mapper注解 ,就不需要再写.xml文件
@Mapper
public interface IEmployeeDao {
    @Select("select * from tbl_emp e where e.name=#{name}")
    public List<Employee> findEmpByName(@Param("name") String name);
}

3.4 entity 层:

	/**
 * 持久化类
 * by wx 2019-04-08
 */
public class Person implements Serializable {
    private static final long serialVersionUID = -6172780607087661025L;
    private Integer id;
    private String name;
    private String addr;
    private String company;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddr() {
        return addr;
    }
    public void setAddr(String addr) {
        this.addr = addr;
    }
    public String getCompany() {
        return company;
    }
    public void setCompany(String company) {
        this.company = company;
    }
}

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”)

@RestController
@SpringBootApplication
@MapperScan("com.wx.springbootdemo.dao")//要扫描的dao包
public class SpringbootdemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringbootdemoApplication.class, args);
    }
}

3.7 mapper映射文件:

<?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.wx.springbootdemo.dao.IPersonDao">
            <select id="findAll" resultType="com.wx.springbootdemo.entity.Person">
        select id,name,addr ,company from tbl_person
    </select>
    <select id="findByid" resultType="com.wx.springbootdemo.entity.Person">
            select * from tbl_person where id = #{id}
        </select>
        </mapper>

3.8 项目结构:

测试:先启动项目,然后如下访问:

另一种测试方法(Spring Boot 内嵌的tools),如下图:

个人感悟

  • Mybatis:虽然做到了代码和sql语句分离,但是无法做到数据库无关性,即换了一个数据库例如mysql,很多语句就得做修改。
  • Hibernate:是ORM框架,做到了数据库无关性,很好的封装了底层jdbc。支持独特的Hql查询,也支持原生的sql语句。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • oracle+mybatis-plus+springboot实现分页查询的实例

    今天蠢了一上午才弄出这玩意,话不多说上代码! 1.建一个配置类 package com.sie.demo.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInte

  • Springboot+MybatisPlus+Oracle实现主键自增的示例代码

    上周周一,本来刚过完周末,高高兴兴,老大突然安排了个活,要在一天内把项目的MySQL数据库换成Oracle数据库,我们都知道这是不可能完成的任务,但是,秉承着"没有困难的工作,只有不努力的打工人"的精神,我们马上投入了工作,第一步当然是先配置数据库.oracle建表,这个解决调试了一上午,然后下午卡到oracle主键了,所有人网上找方法,一直到第二天凌晨3点半都还没解决,网上方法很多,试了好多都不管用,终于第二天才找到了满足的方法. 废话不多说,下面贴出. application.ym

  • springboot+mybatis-plus+oracle实现逻辑删除

    最近在做一个前后端分离的小项目,需要删除用户表的用户,但是用户再别的表做了外键,所以只能做成逻辑删除,一通百度查资料后得以实现: 1.用户实体类 package com.sie.demo.entity; import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.

  • SpringBoot集成mybatis连接oracle的图文教程

    目录 一.背景 原始的连接数据库的步骤 二.整合过程 springboot集成mybatis连接oracle数据库的过程 个人感悟 一.背景 在实际开发过程中是离不开数据库的,如果不使用任何框架,那么连接数据库的代码会散落在项目的各个地方,且容易出现各种连接数据库问题. 原始的连接数据库的步骤 1.加载驱动(什么数据库,就记载什么驱动) 2.获取连接 3.编写sql 4.创建statement 5.执行sql语句并处理结果 6.自下而上一次关闭连接(容易出现异常) 在实际开发中,操作数据库还是很

  • springboot集成Mybatis的详细教程

    springboot集成Mybatis 第一步: 添加Mybatis依赖 <!--mybatis整合springboot框架的起步依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.0</version> &l

  • SpringBoot集成Mybatis的实现步骤

    通过 SpringBoot +MyBatis 实现对数据库学生表的查询操作 一.实现步骤 新建一个09-springboot-web-mybatis项目,方式和之前一样,基于springboot的 1. 准备数据库 新建一个数据库springboot,指定字符编码集utf-8,并创建数据表 表名为:t_student,并插入几条数据 2. 在pom.xml 中添加相关 jar 依赖 <!--Mybatis整合springboot的起步依赖--> <dependency> <g

  • SpringBoot集成Mybatis+xml格式的sql配置文件操作

    SpringBoot集成Mybatis+xml格式的sql配置文件 最近一直在研究SpringBoot技术,由于项目需要,必须使用Mybatis持久化数据.所以就用SpringBoot集成Mybatis. 由于项目使用的是xml配置文件格式的SQL管理,所以SpringBoot必须配置Mybatis文件.但这样做的话又与SpringBoot的零xml配置冲突. 所以索性使用java类来配置Mybatis. 下面是Mybatis的配置类: import java.util.Properties;

  • SpringBoot集成Mybatis并测试

    目录 1.SpringBoot链接druid连接池 2.SpringBoot集成Mybatis 2.1.引入Mybatis-generator 2.2.集成mybatis并测试 3.其它 3.1.自定义druid链接池 3.2.SpringBoot的Mybatis其它配置 首先我们先新建一个项目,需要选择以下依赖: 1.SpringBoot链接druid连接池 1.在pom文件中加入druid连接池场景启动器,如下所示: <!-- druid 场景启动器 --> <dependency&

  • 详解springboot集成mybatis xml方式

    springboot集成mybatis 关键代码如下: 1,添加pom引用 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> &l

  • Spring Boot整合MyBatis连接Oracle数据库的步骤全纪录

    前言 本文主要分享了Spring Boot整合MyBatis连接Oracle数据库的相关内容,下面话不多说了,直接来详细的步骤吧. 步骤如下: 1.Spring Boot项目添加MyBatis依赖和Oracle驱动: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <ver

  • PLSQL Developer连接oracle数据库配置教程

    需要安装的工具: 一:Oracle的下载安装: 下载地址: http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html 详细安装此处不做赘余描述,需要注意的是下载好的两文件需解压至同一目录下以及环境变量的路径配置(尽量使用英文字符路径): 二.安装32位Instant Client 下载32位Instant Client(轻量级的客户端),作为本地Oracle环境 (旧版本里64位In

  • IDEA使用Mybatis插件 MyBatisCodeHelper-Pro的图文教程

    转载出处:https://zhile.io/2019/04/23/mybatis-code-helper-pro-crack.html 一.前言 在开发中编写生成bean,mapper,mapper.xml即费时也费力,可以通过MyBatisCodeHelper-Pro自动生成bean,dao,mapper.xml等文件,然后根据自己的需要进行修改. MyBatisCodeHelper-Pro是IDEA下的一个插件,类似于mybatis plugin,但是是收费的,但可以进行破解: 二.安装插件

  • springboot集成druid连接池配置的方法

    在开发项目中如果数据库选型为mysql,很大概率下连接池会使用druid 这里介绍springboot集成durid springboot : 2.1.9 druid : 1.1.10 案例地址 github地址 springboot集成druid配置 需要引入的pom <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactI

随机推荐