项目结构
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);
}
}
}