目录
5、StudentServiceImpl(serviceImpl包)
6、StudentController(controller包)
第四步:修改application.properties文件
前言
在上一篇博文中,我记录了关于Spring Boot项目搭建的笔记,我们并没有进行数据库操作,但是在真正的环境中这是不可能的,想要持久化就必须要有数据库这个玩意,今天我们就一起在Spring Boot中整合MyBatis!
因为关于项目的搭建,在上一篇文章已经说过了,所以这一篇不再从头进行,请自行搭建Spring Boot工程环境,新手可参考本人的上一篇文章,我们直接从搭建好的目录结构开始!
开始整合
第一步:创建数据库表,插入测试数据
DROP TABLE IF EXISTS `Student`;
CREATE TABLE `Student` (
`sID` int(11) DEFAULT NULL,
`sName` varchar(255) DEFAULT NULL,
`ClassId` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `Student` VALUES ('1', '小张', '1');
INSERT INTO `Student` VALUES ('2', '小明', '1');
INSERT INTO `Student` VALUES ('3', '小李', '2');
INSERT INTO `Student` VALUES ('4', '小强', '2');
INSERT INTO `Student` VALUES ('5', '美女', '2');
第二步:创建项目,并创建相关的包、类或者接口(附代码)
项目创建好是这个结构,创建的时候一定不要忘了选上SQL依赖和MyBatis依赖!!!不懂的可参考我的上一篇文章。这个目录结构不是固定的,你可以根据你的习惯创建目录,下面贴出来这些类或接口的代码:
1、Student(pojo包)
package com.books.pojo;
public class Student {
private int sID;
private String sName;
private int classId;
public int getsID() {
return sID;
}
public void setsID(int sID) {
this.sID = sID;
}
public String getsName() {
return sName;
}
public void setsName(String sName) {
this.sName = sName;
}
public int getClassId() {
return classId;
}
public void setClassId(int classId) {
this.classId = classId;
}
}
2、StudentDao(dao包)
package com.books.dao;
import com.books.pojo.Student;
import java.util.List;
public interface StudentDao {
public List<Student> getAllStudent();
}
3、StudentMapper(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.books.dao.StudentDao">
<select id="getAllStudent" resultType="Student">
select * from Student
</select>
</mapper>
4、StudentService(service包)
package com.books.service;
import com.books.pojo.Student;
import java.util.List;
public interface StudentService {
public List<Student> getAllStudent();
}
5、StudentServiceImpl(serviceImpl包)
package com.books.serviceImpl;
import com.books.dao.StudentDao;
import com.books.pojo.Student;
import com.books.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service("studentService")
public class StudentServiceImpl implements StudentService {
@Autowired
@Qualifier("studentDao")
private StudentDao studentDao;
@Override
public List<Student> getAllStudent() {
return studentDao.getAllStudent();
}
}
6、StudentController(controller包)
package com.books.controller;
import com.books.pojo.Student;
import com.books.service.StudentService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import java.util.List;
@Controller
public class StudentController {
@Resource(name = "studentService")
private StudentService studentService;
@RequestMapping("/student")
public String goIndex(Model model){
List<Student> studentList=studentService.getAllStudent();
model.addAttribute("list",studentList);
return "Student";
}
}
7、Student.jsp(webapp/jsp目录下)
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<c:forEach items="${list}" var="student">
<c:out value="${student.sName}" />
<br>
</c:forEach>
</body>
</html>
注意不要忘了在IDEA中引入DTD,在settings中设置,这一点可自行搜索资料。
第三步:修改pom.xml
添加MySQL的驱动包依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
然后在<build>标签里加入以下内容,否则待会扫描不到我们的SQL映射文件:
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
第四步:修改application.properties文件
server.port=8088
#返回的前缀 目录对应src/main/webapp下
spring.mvc.view.prefix=/jsp/
#返回的后缀
spring.mvc.view.suffix=.jsp
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/ShopOrder?useSSL=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=accp
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5
mybatis.type-aliases-package=com/books/pojo
mybatis.mapperLocations=classpath*:com/books/mapper/*.xml
第五步:修改启动类xxxApplication
加上@MapperScan这个注解,然后指定你的XML所存放的文件夹,否则不会进行注册:
package com.books;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@SpringBootApplication() //开启组件扫描和自动配置
@MapperScan("com.books.dao")
public class RunApplication {
public static void main(String[] args) {
//负责启动引导应用程序
SpringApplication.run(RunApplication.class, args);
}
}
第六步:部署运行