springboot-mybatis-oracle整合

本文详细介绍了如何使用SpringBoot框架整合Oracle数据库和MyBatis持久层框架,包括引入依赖、配置数据源、创建实体类、Mapper、Service、Controller等步骤,并通过实例演示了从前端到后端的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目结构
在这里插入图片描述
在这里插入图片描述

1.引入依赖

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.0.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--springboot集成Junit 的启动依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        
        <!-- 阿里巴巴的Druid数据源依赖启动器 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>

        <!-- MyBatis依赖启动器 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

    </dependencies>

2.添加oracle驱动,oracle驱动不开源,不在maven获取
3.创建配置文件application.properties

## 数据源
spring.datasource.url=jdbc:oracle:thin://localhost:1521/orcl
spring.datasource.username=scott
spring.datasource.password=123
# 配置driver驱动
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.max-active=100


mybatis.type-aliases-package=com.aaa.oracle.entity
mybatis.configuration.map-underscore-to-camel-case=true
### 执行下面的代码都打印日志
logging.level.com.aaa.oracle.dao=debug

4.创建实体类

package com.aaa.entity;

public class Owner {
    private int ownerId;
    private int roomId;
    private String ownerName;
    private String ownerPhone;
    private String  ownerIds;
    private String ownerMail;
    private String ownerCar;
    private String roomName;

    public Owner() {
    }

    public Owner(int ownerId, int roomId, String ownerName, String ownerPhone, String ownerIds, String ownerMail, String ownerCar, String roomName) {
        this.ownerId = ownerId;
        this.roomId = roomId;
        this.ownerName = ownerName;
        this.ownerPhone = ownerPhone;
        this.ownerIds = ownerIds;
        this.ownerMail = ownerMail;
        this.ownerCar = ownerCar;
        this.roomName = roomName;
    }

    public int getOwnerId() {
        return ownerId;
    }

    public void setOwnerId(int ownerId) {
        this.ownerId = ownerId;
    }

    public int getRoomId() {
        return roomId;
    }

    public void setRoomId(int roomId) {
        this.roomId = roomId;
    }

    public String getOwnerName() {
        return ownerName;
    }

    public void setOwnerName(String ownerName) {
        this.ownerName = ownerName;
    }

    public String getOwnerPhone() {
        return ownerPhone;
    }

    public void setOwnerPhone(String ownerPhone) {
        this.ownerPhone = ownerPhone;
    }

    public String getOwnerIds() {
        return ownerIds;
    }

    public void setOwnerIds(String ownerIds) {
        this.ownerIds = ownerIds;
    }

    public String getOwnerMail() {
        return ownerMail;
    }

    public void setOwnerMail(String ownerMail) {
        this.ownerMail = ownerMail;
    }

    public String getOwnerCar() {
        return ownerCar;
    }

    public void setOwnerCar(String ownerCar) {
        this.ownerCar = ownerCar;
    }

    public String getRoomName() {
        return roomName;
    }

    public void setRoomName(String roomName) {
        this.roomName = roomName;
    }

    @Override
    public String toString() {
        return "Owner{" +
                "ownerId=" + ownerId +
                ", roomId=" + roomId +
                ", ownerName='" + ownerName + '\'' +
                ", ownerPhone='" + ownerPhone + '\'' +
                ", ownerIds='" + ownerIds + '\'' +
                ", ownerMail='" + ownerMail + '\'' +
                ", ownerCar='" + ownerCar + '\'' +
                ", roomName='" + roomName + '\'' +
                '}';
    }
}


5.创建mapper

package com.aaa.dao;

import com.aaa.entity.Owner;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
@Mapper
public interface OwnerDao {
    @Select("select b.roomname,a.* from tb_owners a left join tab_room b on a.roomId=b.roomId")
    List<Owner> selectOwnerRoom();


}

6.创建 service

package com.aaa.service;

import com.aaa.dao.OwnerDao;
import com.aaa.entity.Owner;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;
@Component
public class OwnerServiceImpl implements OwnerService{
    @Autowired
    private OwnerDao ownerDao;

    @Override
    public List<Owner> selectOwnerRoom() {
        return ownerDao.selectOwnerRoom();
    }
}

7.创建controller

package com.aaa.controller;

import com.aaa.entity.Owner;
import com.aaa.service.OwnerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
public class OwnerController {
    @Autowired
    private OwnerService ownerService;
    @RequestMapping("/selectOwnerRoom")
    @ResponseBody
public List<Owner> selectOwnerRoom(){
    List<Owner>  ownerList=ownerService.selectOwnerRoom();
    return ownerList;
}

}

8.前台界面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- import CSS -->
    <link rel="stylesheet" href="ele/lib-master/theme-chalk/index.css">
    <!-- import Vue before Element -->
    <script src="js/vue.js"></script>
    <!-- import JavaScript -->
    <script src="ele/lib-master/index.js"></script>

    <!-- 引入axios-->
    <script src="js/axios.min.js"></script>
</head>
<body>
<div id="app">
    <template>
       <!-- <el-button @click="addvisible = true">新增业主</el-button>-->
        <el-table
                :data="tableData"
                stripe
                style="width: 100%">
            <el-table-column
                    prop="roomName"
                    label="房间编号"
                    width="180">
            </el-table-column>
            <el-table-column
                    prop="ownerName"
                    label="业主名字"
                    width="180">
            </el-table-column>
            <el-table-column
                    prop="ownerPhone"
                    label="电话">
            </el-table-column>
            <el-table-column
                    prop="ownerIds"
                    label="身份证号码">
            </el-table-column>
            <el-table-column
                    prop="ownerCar"
                    label="车位信息">
            </el-table-column>
            <el-table-column
                    prop="ownerMail"
                    label="业主邮箱">
            </el-table-column>
            <el-table-column label="操作">
                <template slot-scope="scope">
                    <el-button
                            size="mini"
                            @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
                    <el-button
                            size="mini"
                            type="danger"
                            @click="handleDelete(scope.$index, scope.row)">删除</el-button>
                </template>
            </el-table-column>
        </el-table>
    </template>

</div>
<script>
    var vm=new Vue({
        el:'#app',
        data:{
            tableData: [

            ]

        },
        mounted:function () {
           axios
               .get('/selectOwnerRoom')
               .then(function (value) {
                   vm.tableData=value.data;
               }).catch(function (reason) {
                   console.log(reason)
           });
         /*  axios
               .get('/selectAllRoom')
               .then(function (value) {
                   vm.options=value.data;
               })*/
        }
    })
</script>

</body>
</html>

9.创建启动类

package com.aaa;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

public class OwnerApplication {
    public static void main(String[] args) {
        SpringApplication.run(OwnerApplication.class,args);
    }
}

单元测试,在Test下创建同级目录

package com.aaa;

import com.aaa.dao.OwnerDao;
import com.aaa.entity.Owner;
import com.aaa.service.OwnerService;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

@SpringBootTest
@RunWith(SpringRunner.class)
public class Test {

    @Autowired
    private OwnerDao ownerDao;
    @Autowired
    private OwnerService ownerService;
    @org.junit.Test
    public void test1(){
        List<Owner> ownerList = ownerDao.selectOwnerRoom();
        for (Owner owner : ownerList) {
            System.out.println(owner);
        }
    }
    @org.junit.Test
    public void test2(){
        List<Owner> ownerList = ownerService.selectOwnerRoom();
        for (Owner owner : ownerList) {
            System.out.println(owner);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值