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

相关文章
|
24天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
126 1
|
9天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
86 62
|
6天前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
6天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
20 2
|
10天前
|
JSON Java API
springboot集成ElasticSearch使用completion实现补全功能
springboot集成ElasticSearch使用completion实现补全功能
17 1
|
20天前
|
人工智能 开发框架 Java
总计 30 万奖金,Spring AI Alibaba 应用框架挑战赛开赛
Spring AI Alibaba 应用框架挑战赛邀请广大开发者参与开源项目的共建,助力项目快速发展,掌握 AI 应用开发模式。大赛分为《支持 Spring AI Alibaba 应用可视化调试与追踪本地工具》和《基于 Flow 的 AI 编排机制设计与实现》两个赛道,总计 30 万奖金。
|
26天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用
【10月更文挑战第8天】本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,通过 Spring Initializr 创建并配置 Spring Boot 项目,实现后端 API 和安全配置。接着,使用 Ant Design Pro Vue 脚手架创建前端项目,配置动态路由和菜单,并创建相应的页面组件。最后,通过具体实践心得,分享了版本兼容性、安全性、性能调优等注意事项,帮助读者快速搭建高效且易维护的应用框架。
38 3
|
25天前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
46 1
|
27天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用
【10月更文挑战第7天】本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,通过 Spring Initializr 创建 Spring Boot 项目并配置 Spring Security。接着,实现后端 API 以提供菜单数据。在前端部分,使用 Ant Design Pro Vue 脚手架创建项目,并配置动态路由和菜单。最后,启动前后端服务,实现高效、美观且功能强大的应用框架。
34 2
|
25天前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
40 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库