Spring Boot与MyBatis的集成应用

简介: Spring Boot与MyBatis的集成应用

一、创建Spring Boot项目


首先,我们需要创建一个Spring Boot项目,可以通过Spring Initializr来快速创建。在项目创建过程中,选择以下依赖:

  • Spring Web
  • MyBatis Framework
  • MySQL Driver

项目创建完成后,我们需要进行一些基础配置。


二、配置数据库连接


application.properties文件中添加数据库连接信息:

spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.type-aliases-package=cn.juwatech.entity
mybatis.mapper-locations=classpath:mapper/*.xml


三、创建数据库实体类


接下来,我们创建一个数据库实体类。例如,一个简单的用户实体类:

package cn.juwatech.entity;
public class User {
    private Long id;
    private String username;
    private String password;
    // getters and setters
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}


四、创建MyBatis Mapper接口


接下来,我们创建一个Mapper接口,并定义数据库操作方法。Mapper接口与MyBatis映射文件对应:

package cn.juwatech.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import cn.juwatech.entity.User;
import java.util.List;
@Mapper
public interface UserMapper {
    @Select("SELECT * FROM users")
    List<User> findAll();
    User findById(Long id);
    void insert(User user);
    void update(User user);
    void delete(Long id);
}


五、创建MyBatis映射文件


resources/mapper目录下创建对应的XML映射文件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="cn.juwatech.mapper.UserMapper">
    <select id="findById" resultType="cn.juwatech.entity.User">
        SELECT * FROM users WHERE id = #{id}
    </select>
    <insert id="insert">
        INSERT INTO users (username, password) VALUES (#{username}, #{password})
    </insert>
    <update id="update">
        UPDATE users SET username = #{username}, password = #{password} WHERE id = #{id}
    </update>
    <delete id="delete">
        DELETE FROM users WHERE id = #{id}
    </delete>
</mapper>


六、创建Service层


在Service层中,我们调用Mapper接口的方法,实现业务逻辑:

package cn.juwatech.service;
import cn.juwatech.entity.User;
import cn.juwatech.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public List<User> findAll() {
        return userMapper.findAll();
    }
    public User findById(Long id) {
        return userMapper.findById(id);
    }
    public void insert(User user) {
        userMapper.insert(user);
    }
    public void update(User user) {
        userMapper.update(user);
    }
    public void delete(Long id) {
        userMapper.delete(id);
    }
}


七、创建Controller层


最后,在Controller层中,我们通过Service层调用业务逻辑,处理HTTP请求:

package cn.juwatech.controller;
import cn.juwatech.entity.User;
import cn.juwatech.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;
    @GetMapping
    public List<User> findAll() {
        return userService.findAll();
    }
    @GetMapping("/{id}")
    public User findById(@PathVariable Long id) {
        return userService.findById(id);
    }
    @PostMapping
    public void insert(@RequestBody User user) {
        userService.insert(user);
    }
    @PutMapping("/{id}")
    public void update(@PathVariable Long id, @RequestBody User user) {
        user.setId(id);
        userService.update(user);
    }
    @DeleteMapping("/{id}")
    public void delete(@PathVariable Long id) {
        userService.delete(id);
    }
}


八、总结


通过上述步骤,我们已经完成了Spring Boot与MyBatis的集成应用。从数据库配置、实体类创建、Mapper接口定义到Service层和Controller层的实现,我们完成了一个简单的CRUD示例。

相关文章
|
21小时前
|
监控 负载均衡 Java
Spring Boot与微服务治理框架的集成
Spring Boot与微服务治理框架的集成
|
21小时前
|
存储 Java 数据中心
Spring Boot与微服务治理框架的集成成功案例
Spring Boot与微服务治理框架的集成成功案例
|
1天前
|
Java 数据库连接 mybatis
SpringBoot配置Mybatis注意事项,mappers层下的name命名空间,要落实到Dao的video类,resultType要落到bean,配置好mybatis的对应依赖。
SpringBoot配置Mybatis注意事项,mappers层下的name命名空间,要落实到Dao的video类,resultType要落到bean,配置好mybatis的对应依赖。
|
20小时前
|
负载均衡 监控 Java
Spring Boot与微服务治理框架的集成方法
Spring Boot与微服务治理框架的集成方法
|
1天前
|
存储 NoSQL Java
Spring Boot与Neo4j图数据库的集成应用
Spring Boot与Neo4j图数据库的集成应用
|
1天前
|
Java API 网络架构
Spring Boot与Spring Cloud Gateway的集成
Spring Boot与Spring Cloud Gateway的集成
|
4天前
|
Java 应用服务中间件 Maven
ContextLoaderListener在Spring应用中的作用与配置方法
ContextLoaderListener在Spring应用中的作用与配置方法
|
11月前
|
Java 开发者 微服务
深入解析@SpringBootApplication注解:简化Spring Boot应用的配置
在现代的Java开发中,Spring Boot框架成为了构建微服务和快速开发应用的首选。Spring Boot的成功部分归功于其简化的配置和约定大于配置的理念。而`@SpringBootApplication`注解则是Spring Boot应用的入口,负责自动配置和启动Spring Boot应用。本文将深入探讨`@SpringBootApplication`注解的作用、用法,以及在Spring Boot应用中的应用场景。
447 0
|
2月前
|
安全 Java Maven
Spring Boot常见企业开发场景应用、自动配置原理结构分析(三)
Spring Boot常见企业开发场景应用、自动配置原理结构分析
|
2月前
|
Java 数据库连接 Spring
Spring Boot常见企业开发场景应用、自动配置原理结构分析(二)
Spring Boot常见企业开发场景应用、自动配置原理结构分析