springboot 整合 mybatis,使用注解写 sql 语句,具体如下
1、创建 springboot 项目,添加 jar 包
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.springmybatis</groupId>
<artifactId>springmybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springmybatis</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2、配置 yml 文件
server:
port: 9500
spring:
datasource:
url: jdbc:mysql://192.168.0.110:3306/orcl?useUnicode=true&characterEncoding=utf-8&useSSL=false
driver-class-name: com.mysql.jdbc.Driver
username: root
password: 123456
3、数据库建表
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`grade` varchar(255) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
`head` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('jsd1811', '张三', '171');
INSERT INTO `student` VALUES ('jsd1811', '李四', '175');
INSERT INTO `student` VALUES ('jsd1811', '王五', '165');
INSERT INTO `student` VALUES ('jsd1812', '小二', '180');
INSERT INTO `student` VALUES ('jsd1812', '小李', '160');
INSERT INTO `student` VALUES ('jsd1812', '小王', '177');
4、创建实体类
package com.springmybatis.bean;
public class Student {
private String grade;
private String name;
private Integer head;
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getHead() {
return head;
}
public void setHead(Integer head) {
this.head = head;
}
@Override
public String toString() {
return "Student [grade=" + grade + ", name=" + name + ", head=" + head + "]";
}
}
5、创建 mapper 接口
package com.springmybatis.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Select;
import com.springmybatis.bean.Student;
public interface StudentMapper {
@Select("select * from student")
List<Student> getAllStudent();
}
6、在 springboot 启动类上添加 @MapperScan 注解,并指定要扫描的 mapper 类的包路径
package com.springmybatis;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.springmybatis.mapper") //多个包可用数组{"com.springmybatis.demo.mapper","com.springmybatis.user.mapper"}
@SpringBootApplication
public class SpringmybatisApplication {
public static void main(String[] args) {
SpringApplication.run(SpringmybatisApplication.class, args);
}
}
7、创建 controller
package com.springmybatis.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.springmybatis.mapper.StudentMapper;
@RestController
public class StudentController {
@Autowired
private StudentMapper studentMapper;
@RequestMapping("/")
public Object index() {
return studentMapper.getAllStudent();
}
}
8、测试
浏览器访问:http://localhost:9500/
整合成功