目錄
項目結構圖:
數據庫建表:
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for dept
-- ----------------------------
DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept` (
`deptno` int(9) NOT NULL AUTO_INCREMENT COMMENT '部門編號',
`dname` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '部門名稱',
`loc` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '部門地址',
`dstatus` int(2) NULL DEFAULT NULL COMMENT '1:未刪除狀態,0:已刪除',
PRIMARY KEY (`deptno`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '部門信息表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
正式開始:
一、向pom.xml文件中導入相關依賴
<!--springboot父項目(統一當前spring整合版本)-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
<dependencies>
<!--導入web啓動器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis啓動器-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.2</version>
</dependency>
<!-- pagehelper啓動器 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
<!--mysql驅動-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
<!-- 阿里數據源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- 熱部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- optional=true,依賴不會往下傳遞,如果有項目依賴本項目,並且想要使用devtools,需要重新引入 -->
<optional>true</optional>
<scope>true</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork><!-- 如果沒有該配置,熱部署的devtools不生效 -->
</configuration>
</plugin>
<!-- 自定義配置spring Boot使用的JDK版本 -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
二、編寫與數據庫對應的實體類
package com.henu.springboot.entity;
/**
* @author shkstart
* @create 2019-10-18 19:52
*/
public class Dept {
private Integer deptno;
private String dname;
private String loc;
private Integer dstatus;
public Integer getDeptno() {
return deptno;
}
public void setDeptno(Integer deptno) {
this.deptno = deptno;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
public Integer getDstatus() {
return dstatus;
}
public void setDstatus(Integer dstatus) {
this.dstatus = dstatus;
}
@Override
public String toString() {
return "Dept{" +
"deptno=" + deptno +
", dname='" + dname + '\'' +
", loc='" + loc + '\'' +
", dstatus=" + dstatus +
'}';
}
}
三、編寫dao層下的接口類
package com.henu.springboot.dao;
import com.henu.springboot.entity.Dept;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface DeptMapper {
public int insert(Dept dept);
public Dept queryById(int deptno);
public List<Dept> queryAll();
}
四、編寫service層下的業務接口
package com.henu.springboot.service;
import com.henu.springboot.entity.Dept;
import java.util.List;
public interface DeptService {
//添加數據
public int insert(Dept dept);
//根據deptno查詢
public Dept queryById(int deptno);
//查詢全部
public List<Dept> queryAll();
}
五、編寫serviceimpl層下的業務實現類
package com.henu.springboot.serviceimpl;
import com.henu.springboot.dao.DeptMapper;
import com.henu.springboot.entity.Dept;
import com.henu.springboot.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class DeptServiceImpl implements DeptService {
//注入dao層
@Autowired
public DeptMapper deptMapper;
@Override
public int insert(Dept dept) {
return deptMapper.insert(dept);
}
@Override
public Dept queryById(int deptno) {
return deptMapper.queryById(deptno);
}
@Override
public List<Dept> queryAll() {
return deptMapper.queryAll();
}
}
六、完善springboot項目及其配置文件
1、springboot的啓動類
package com.henu.springboot;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@MapperScan("com.henu.springboot.dao")
public class DeptApplication {
public static void main( String[] args )
{
SpringApplication.run(DeptApplication.class,args);
}
}
2、編寫Mybatis的映射文件
<?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.henu.springboot.dao.DeptMapper">
<!--向數據庫中添加數據 -->
<insert id="insert" parameterType="Dept">
insert into dept(dname,loc,dstatus) values(#{dname},#{loc},#{dstatus});
</insert>
<!-- query id -->
<select id="queryById" parameterType="int" resultType="Dept">
select deptno,dname,loc,dstatus from dept where deptno=#{deptno};
</select>
<!-- query All -->
<select id="queryAll" resultType="Dept">
Select deptno,dname,loc,dstatus from dept;
</select>
</mapper>
3、編寫Mybatis的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 主配置文件 -->
<configuration>
</configuration>
4、編寫yml文件
##服務器配置
server:
port: 8090
servlet:
path: /
##spring mvc
spring:
datasource:
name: druid
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/exam?characterEncoding=utf-8
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
#整合mybatis
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml #聲明Mybatis映射文件所在的位置
config-location: classpath:mybatis.xml #聲明Mybatis配置文件所在位置
type-aliases-package: com.henu.springboot.entity #聲明類所在的包(簡化配置)
七、編寫controller層下的控制器
package com.henu.springboot.controller;
import com.henu.springboot.entity.Dept;
import com.henu.springboot.service.DeptService;
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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
public class DeptController {
@Autowired
public DeptService service;
//根據deptno查詢
@RequestMapping("/queryid")
@ResponseBody
public Dept queryById(@RequestParam("deptno") Integer deptno){
return service.queryById(deptno);
}
//插入數據
@RequestMapping("/insert")
@ResponseBody
public boolean insert(Dept dept){
System.out.println(dept);
int i = service.insert(dept);
if (i<1){
return false;
}
return true;
}
//查詢全部
@RequestMapping("/queryall")
@ResponseBody
public List<Dept> queryAll(){
return service.queryAll();
}
}