首页 > 其他分享 >SpringBoot整合Mybatis实现增删改查功能

SpringBoot整合Mybatis实现增删改查功能

时间:2024-05-30 13:59:34浏览次数:10  
标签:SpringBoot 改查 id User Mybatis import com public user

目录

1. 添加依赖

2. 配置数据源和MyBatis

3. 创建实体类

4. Mapper 接口与映射文件

5. 编写服务层

6. 控制器


Spring Boot 整合 MyBatis 是一个相对直接的过程,主要涉及添加依赖、配置数据源、配置 MyBatis、创建实体类、Mapper 接口和映射文件、以及编写服务层来实现增删改查功能。

下面将一步步指导完成整个集成过程。

1. 添加依赖

pom.xml 文件中添加 Spring Boot Starter for MyBatis 的依赖,以及数据库驱动依赖(这里以 MySQL 为例):

<dependencies>
    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring Boot Starter Data JPA (For Database Connectivity, but we use MyBatis) -->
    <!-- 注意:此处添加JPA是为了演示Spring Boot的数据源配置,实际使用MyBatis时可以不加 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <!-- MyBatis Spring Boot Starter -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.3.0</version> <!-- 请检查最新版本 -->
    </dependency>

    <!-- MySQL Driver -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>

2. 配置数据源和MyBatis

application.propertiesapplication.yml 中配置数据库连接信息和MyBatis的相关设置:

spring.datasource.url=jdbc:mysql://localhost:3306/yourdb?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

mybatis.type-aliases-package=com.example.demo.entity
mybatis.mapper-locations=classpath:mapper/*.xml

3. 创建实体类

假设我们有一个用户表 users,对应的实体类 User.java 可能如下:

package com.example.demo.entity;

public class User {
    private Long id;
    private String name;
    private String email;

    // Getter and Setter methods...
}

4. Mapper 接口与映射文件

创建一个 Mapper 接口 UserMapper.java 和对应的 XML 映射文件 UserMapper.xml

UserMapper.java

package com.example.demo.mapper;

import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper {
    User findById(Long id);
    void insertUser(User user);
    void updateUser(User user);
    void deleteUser(Long id);
}

UserMapper.xml (位于 resources/mapper 目录下)

<?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.example.demo.mapper.UserMapper">
    <resultMap id="UserResultMap" type="com.example.demo.entity.User">
        <id property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="email" column="email"/>
    </resultMap>

    <select id="findById" resultMap="UserResultMap">
        SELECT * FROM users WHERE id = #{id}
    </select>

    <insert id="insertUser">
        INSERT INTO users(name, email) VALUES(#{name}, #{email})
    </insert>

    <update id="updateUser">
        UPDATE users SET name=#{name}, email=#{email} WHERE id=#{id}
    </update>

    <delete id="deleteUser">
        DELETE FROM users WHERE id=#{id}
    </delete>
</mapper>

5. 编写服务层

创建一个 UserService 类来调用 Mapper 接口实现增删改查操作。

package com.example.demo.service;

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public User findById(Long id) {
        return userMapper.findById(id);
    }

    public void insertUser(User user) {
        userMapper.insertUser(user);
    }

    public void updateUser(User user) {
        userMapper.updateUser(user);
    }

    public void deleteUser(Long id) {
        userMapper.deleteUser(id);
    }
}

6. 控制器

最后,创建一个 UserController 来处理 HTTP 请求,调用 UserService 完成业务逻辑。

package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        return userService.findById(id);
    }

    @PostMapping
    public void addUser(@RequestBody User user) {
        userService.insertUser(user);
    }

    @PutMapping
    public void updateUser(@RequestBody User user) {
        userService.updateUser(user);
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable Long id) {
        userService.deleteUser(id);
    }
}

至此,Spring Boot 整合 MyBatis 实现基本的增删改查功能就完成了。

你可以启动应用并使用 Postman 或类似工具测试这些 API。

记得先确保你的数据库连接信息正确,并且已创建相应的表结构。

标签:SpringBoot,改查,id,User,Mybatis,import,com,public,user
From: https://blog.csdn.net/qq_35759769/article/details/139314628

相关文章

  • Java 对象关系映射(ORM)框架:介绍Java的经典ORM框架,如Hibernate,MyBatis,及其用法
    什么是ORM对象关系映射(ObjectRelationalMapping,简称ORM)是一种程序设计技术,用于实现面向对象编程语言中的对象和关系数据库中的数据之间的映射。在其他words,它就是创建一个可在编程语言里使用的、能感知数据库模式结构的虚拟对象数据库。 ORM的主要作用如下: ......
  • (小白专用)SpringBoot快速搭建
    SpringBoot简介跟优点SpringBoot是一个基于Spring框架的开源项目,用于简化和加速Spring应用程序的开发和部署过程。它通过提供默认配置和约定来简化Spring应用程序的搭建,从而让开发者更专注于编写业务逻辑而不是配置和设置。SpringBoot的主要特点包括:自动配置:Spr......
  • springboot~jpa审计字段的自动填充
    在使用SpringDataJPA中的@CreatedDate注解时,如果希望自动填充创建时间字段,通常需要结合@EntityListeners(AuditingEntityListener.class)注解一起使用。这是因为@CreatedDate等审计注解通常与审计事件监听器(AuditingEntityListener)一起工作,用于处理实体的审计信息。审......
  • MyBatis完成CRUD 详细细节内容
    1.MyBatis完成CRUD详细细节内容@目录1.MyBatis完成CRUD详细细节内容每博一文案2.MyBatis工具类SqlSessionUtil的封装3.准备工作3.1insert添加/插入记录3.2delete删除记录3.3update修改记录3.4select查询记录3.4.5select查询一条记录3.4.6select查询多条记录4.......
  • 基于springboot+vue的家乡特色推荐系统
    开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示系统首页用户注册文章分享界面个人中心管理员登录管理员功能用户管理文章分类管理文章分享......
  • Java毕业设计-基于springboot开发的旅游网站-毕业论文(附毕设源代码)
    文章目录前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求/流程分析3、系统功能结构三、系统实现展示1、用户信息管理2、旅游动态管理3、景点信息管理4、公告信息管理四、毕设内容和源代码获取总结Java毕业设计-基于springboot开发的旅游网站-......
  • Springboot报class path resource [xxxxx.json] cannot be resolved to URL because i
    当Springboot解析resources文件下的json文件时,在本地环境好用,部署到服务器上找不到文件内容报错classpathresource[xxxxx.json]cannotberesolvedtoURLbecauseitdosenotexist问题排查(1)pom.xml文件配置<build><resources><resource><d......
  • springboot3项目的搭建三(统一返回异常等)
    springboot3项目的搭建三(统一返回异常等) 一、统一返回(其实两部分,一个是返回错误码可枚举可类,另一个是返回的实体其中data是泛型)1.返回码:packagecom.qiqi.common.constants;publicenumReturnCode{SUCCESS(200,"操作成功"),NEED_LOGIN(401,"需要登录后操作......
  • SpringBoot之ThreadLocal保存请求用户信息
    一、ThreadLocal概述 线程局部变量,创建一个线程变量后,针对这个变量可以让每个线程拥有自己的变量副本,每个线程是访问的自己的副本,与其他线程的相互独立。二、具体代码demo实现(1)创建user实例对象@DatapublicclassUserDTO{privateLonguserId;privateStringU......
  • Springboot计算机毕业设计学生实习考勤的打卡小程序【附源码】开题+论文+mysql+程序+
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着高等教育的发展,学生实习已成为培养应用型人才的重要环节。然而,在学生实习管理过程中,考勤是一个关键环节,也是确保实习质量和学生安全的基础。传统......