一、项目结构
1.导入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>testcsdn</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.10.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!--web网页,如果只在test测试类中测试,则可去掉--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--简化代码的工具包,针对实体类--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--mybatis‐plus的springboot支持-->
<!-- <dependency>-->
<!-- <groupId>com.baomidou</groupId>-->
<!-- <artifactId>mybatis-plus-boot-starter</artifactId>-->
<!-- <version>3.1.0</version>-->
<!-- </dependency>--><!--mybatis的springboot支持--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency><!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version></dependency></dependencies></project>
2.Controller层
package org.example.controller;import org.example.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController //@RestController = @Controller + @ResponseBody 此处目的是返回json数据
@RequestMapping("/test")
public class StudentController {@Autowiredprivate StudentService studentService;@RequestMapping("/show")public String test01(){return studentService.findStudent();}}
3.mapper层
package org.example.mapper;import org.example.pojo.Student;public interface StudentMapper {Student findStudent();
}
4.pojo实体类
springboot+mybatis实体类不需要加@Table等注解,只要有@Data注解即可(包含getter/setter方法)
package org.example.pojo;import lombok.Data;@Data
public class Student {private Integer id;private String name;private Integer age;}
5.service层
接口
package org.example.service;public interface StudentService {String findStudent();
}
实现类
package org.example.service;import org.example.mapper.StudentMapper;
import org.example.pojo.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class StudentServiceImp implements StudentService{@Autowiredprivate StudentMapper studentMapper;@Overridepublic String findStudent() {Student student = studentMapper.findStudent();return student.toString();}
}
6.启动类
package org.example;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("org.example.mapper")
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}
7.StudentMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="org.example.mapper.StudentMapper"><select id="findStudent" resultType="org.example.pojo.Student">select * from student where id = 1</select>
</mapper>
8.application.yml
server:port: 8080 #服务端口号,可修改
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driver #mysql5版本把.cj去掉,此处为mysql8.0url: jdbc:mysql://localhost:3306/test #test改成自己的数据库名username: rootpassword: "123456"mybatis:mapper-locations: classpath:mybatis/*.xml#目的是为了省略resultType里的代码量,可不加
# type-aliases-package: com.example.pojo
# configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
9.测试类
package org.example.test;import org.example.service.StudentService;
import org.junit.Test;
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;@SpringBootTest
@RunWith(SpringRunner.class)
public class StudentTest {@Autowiredprivate StudentService studentService;@Testpublic void test(){String student = studentService.findStudent();System.out.println(student);}}
二、Sql
/*Navicat Premium Data TransferSource Server : localhostSource Server Type : MySQLSource Server Version : 80033 (8.0.33)Source Host : localhost:3306Source Schema : testTarget Server Type : MySQLTarget Server Version : 80033 (8.0.33)File Encoding : 65001Date: 19/12/2023 10:14:04
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (`id` int NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`age` int NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES (1, '李华', 19);
INSERT INTO `student` VALUES (2, '张飞', 20);
INSERT INTO `student` VALUES (3, '丑陋', 22);
INSERT INTO `student` VALUES (4, '孙尚香', 18);
INSERT INTO `student` VALUES (5, '狄仁杰', 12);SET FOREIGN_KEY_CHECKS = 1;
测试
右键启动类启动服务
在网页打开网址
http://localhost:8080/test/show
显示下图,即运行成功!
到这里你的springboot+mybatis项目就算是入门了,如果伙伴们有什么问题的话,评论留言,大家一起学习,一起进步!
环境:IDEA开发工具、数据库Mysql8.0、Springboot+Mybatis项目