Spring Boot与MyBatis的集成应用

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

Spring Boot与MyBatis的集成应用

今天我们来聊聊Spring Boot与MyBatis的集成应用。MyBatis是一款优秀的持久层框架,它消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的工作。通过与Spring Boot的集成,可以更简洁、高效地进行数据库操作。本文将详细介绍如何在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示例。

Spring Boot与MyBatis的集成使得数据库操作变得更加简洁高效。在实际项目中,我们可以根据业务需求扩展和优化上述示例,构建更为复杂和健壮的应用。

相关文章
|
6天前
|
Java 数据库连接 数据库
spring复习05,spring整合mybatis,声明式事务
这篇文章详细介绍了如何在Spring框架中整合MyBatis以及如何配置声明式事务。主要内容包括:在Maven项目中添加依赖、创建实体类和Mapper接口、配置MyBatis核心配置文件和映射文件、配置数据源、创建sqlSessionFactory和sqlSessionTemplate、实现Mapper接口、配置声明式事务以及测试使用。此外,还解释了声明式事务的传播行为、隔离级别、只读提示和事务超时期间等概念。
spring复习05,spring整合mybatis,声明式事务
|
10天前
|
Java 数据库连接 数据库
SpringBoot 整合jdbc和mybatis
本文详细介绍了如何在SpringBoot项目中整合JDBC与MyBatis,并提供了具体的配置步骤和示例代码。首先,通过创建用户实体类和数据库表来准备基础环境;接着,配置Maven依赖、数据库连接及属性;最后,分别展示了JDBC与MyBatis的集成方法及其基本操作,包括增删查改等功能的实现。适合初学者快速入门。
SpringBoot 整合jdbc和mybatis
|
2天前
|
存储 前端开发 Java
Spring Boot 集成 MinIO 与 KKFile 实现文件预览功能
本文详细介绍如何在Spring Boot项目中集成MinIO对象存储系统与KKFileView文件预览工具,实现文件上传及在线预览功能。首先搭建MinIO服务器,并在Spring Boot中配置MinIO SDK进行文件管理;接着通过KKFileView提供文件预览服务,最终实现文档管理系统的高效文件处理能力。
|
7天前
|
Java 对象存储 开发者
故障隔离与容错处理:Hystrix在Spring Cloud和Netflix OSS中的应用
故障隔离与容错处理:Hystrix在Spring Cloud和Netflix OSS中的应用
23 3
|
6天前
|
XML Java 关系型数据库
springboot 集成 mybatis-plus 代码生成器
本文介绍了如何在Spring Boot项目中集成MyBatis-Plus代码生成器,包括导入相关依赖坐标、配置快速代码生成器以及自定义代码生成器模板的步骤和代码示例,旨在提高开发效率,快速生成Entity、Mapper、Mapper XML、Service、Controller等代码。
springboot 集成 mybatis-plus 代码生成器
|
6天前
|
Java Spring
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
本文介绍了如何在Spring Boot项目中集成Swagger 2.x和3.0版本,并提供了解决Swagger在Spring Boot中启动失败问题“Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerEx”的方法,包括配置yml文件和Spring Boot版本的降级。
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
|
6天前
|
SQL XML Java
springboot整合mybatis-plus及mybatis-plus分页插件的使用
这篇文章介绍了如何在Spring Boot项目中整合MyBatis-Plus及其分页插件,包括依赖引入、配置文件编写、SQL表创建、Mapper层、Service层、Controller层的创建,以及分页插件的使用和数据展示HTML页面的编写。
springboot整合mybatis-plus及mybatis-plus分页插件的使用
|
6天前
|
XML Java 数据库连接
springboot中整合mybatis及简单使用
这篇文章介绍了如何在Spring Boot项目中整合MyBatis,包括依赖引入、配置数据源、创建测试表、编写Mapper接口和XML文件、以及创建Service和Controller层的步骤。
springboot中整合mybatis及简单使用
|
3月前
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
190 6
|
3月前
|
Java 关系型数据库 MySQL
如何实现Springboot+camunda+mysql的集成
【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
217 4
下一篇
无影云桌面