SpringBoot整合Mybatis
文章目录
1 导入依赖
导入的依赖有:
- mybatis-spring-boot-starter
- spring-boot-starter-jdbc
- spring-boot-starter-web
- mysql-connector-java
具体如下:
<?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
https://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.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xzzlx</groupId>
<artifactId>springboot-05-mybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-05-mybatis</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<!-- mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<!-- jdbc -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mysql -->
<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 修改resources中配置文件
修改application.yaml
spring:
datasource:
url: jdbc:mysql://192.168.18.176:3306/win_database01?useSSL=true&useUnicode=true&
characterEncoding=UTF-8&serverTimeZone=Aisa/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
---
mybatis:
mapper-locations: classpath:mybatis/mapper/*.xml
type-aliases-package: com.xzzlx.pojo
核心:
mapper-locations: classpath:mybatis/mapper/*.xml
type-aliases-package: com.xzzlx.pojo
3 连接数据库创建实体类
创建pojo包,新建User类
package com.xzzlx.pojo;
public class User {
private Long id;
private String name;
private String password;
public User() {
}
public User(Long id, String name, String password) {
this.id = id;
this.name = name;
this.password = password;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
4 创建mapper文件
创建接口
package com.xzzlx.mapper;
import com.xzzlx.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;
// 表明这是一个mybatis的mapper类
@Mapper
@Repository
public interface UserMapper {
/**
* 返回全部用户
* @return 用户列表
*/
List<User> queryUserList();
/**
* 查找某个用户
* @param id 用户id
* @return 用户对象
*/
User queryUserById(@PathVariable("id") Long id);
/**
* 增加用户
* @param user 用户对象
* @return 操作是否成功 0 失败 1 成功
*/
Long addUser(User user);
/**
* 修改用户
* @param user 用户对象
* @return 操作是否成功 0 失败 1 成功
*/
Long updateUser(User user);
/**
* 删除用户
* @param id 用户id
* @return 操作是否成功 0 失败 1 成功
*/
Long deleteUser(@PathVariable("id") Long id);
}
5 创建xml文件
在resources文件夹下创建mybatis文件,然后在mybatis创建mapper文件,在这里创建UserMapper.xml文件
<?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.xzzlx.mapper.UserMapper">
<select id="queryUserList" resultType="user">
select * from win_database01.user
</select>
<select id="queryUserById" parameterType="_Long" resultType="user">
select * from win_database01.user where id = #{id}
</select>
<insert id="addUser" parameterType="user">
insert into win_database01.user (id, name, password) VALUES (#{id}, #{name}, #{password})
</insert>
<update id="updateUser" parameterType="user">
update win_database01.user set name = #{name}, password = #{password} where id = #{id}
</update>
<delete id="deleteUser" parameterType="_Long">
delete from win_database01.user where id = #{id}
</delete>
</mapper>
6 创建controller层
创建UserController类
package com.xzzlx.controller;
import com.xzzlx.mapper.UserMapper;
import com.xzzlx.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/queryUserList")
public List<User> queryUserList(){
List<User> users = userMapper.queryUserList();
for (User user : users) {
System.out.println(user);
}
return users;
}
@GetMapping("/queryUserById/{id}")
public User queryUserById(@PathVariable("id") Long id){
User user = userMapper.queryUserById(id);
System.out.println(user);
return user;
}
@GetMapping("/addUser")
public String addUser(User user){
userMapper.addUser(new User(2L, "邓局", "123456"));
return "新增成功";
}
@GetMapping("/updateUser")
public String updateUser(User user){
userMapper.updateUser(new User(2L, "邓局", "18888886"));
return "修改成功";
}
@GetMapping("/deleteUser/{id}")
public String deleteUser(@PathVariable("id") Long id){
userMapper.deleteUser(2L);
return "删除成功";
}
}
7 启动SpringBoot项目测试
在SpringBoot项目入口启动测试
package com.xzzlx;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
// @MapperScan("com.xzzlx.mapper") 自动扫描该包下所有的接口
@SpringBootApplication
public class Springboot05MybatisApplication {
public static void main(String[] args) {
SpringApplication.run(Springboot05MybatisApplication.class, args);
}
}
以上就是SpringBoot整合Mybatis的demo,有问题可以留言一起讨论,谢谢~