SpringBoot整合Mybatis简单实现增删改查

下面是关于SpringBoot整合Mybatis实现增删改查的详细攻略:

1. 环境搭建

在开始之前,你需要在本地安装好以下软件:

  • JDK 1.8或以上版本
  • Maven
  • MySQL数据库

在安装好上述软件后,你可以新建一个SpringBoot项目,这里使用的是IntelliJ IDEA,你可以通过IDEA创建SpringBoot项目并选择添加Mybatis Starter依赖,如下所示:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>${mybatis-spring-boot.version}</version>
</dependency>

2. 数据库配置

接下来,我们需要在application.properties文件中配置数据库相关的信息,该文件路径为:src/main/resources/application.properties。在文件中添加以下内容:

# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456

# MyBatis配置
mybatis.type-aliases-package=com.example.entity
mybatis.mapper-locations=classpath:mapper/*Mapper.xml

其中,spring.datasource.url为数据库连接地址,spring.datasource.usernamespring.datasource.password为数据库账号和密码,mybatis.type-aliases-package为实体类所在的包名,mybatis.mapper-locations为mapper接口所在的包名。

在完成数据库配置后,可以在IDEA中依次右击工程名称->Maker Directory as ->Resources Folder,创建一个resources文件夹。

3. 实体类和Mapper接口文件

接下来,我们需要创建实体类和Mapper接口文件。首先是实体类,在com.example.entity包下新建一个User实体类:

public class User {
    private Long id;
    private String name;
    private Integer age;
    // 省略getter和setter方法
}

然后,我们需要新建一个Mapper接口,该接口位于com.example.mapper包下,示例如下:

@Mapper
@Repository
public interface UserMapper {
    User selectByPrimaryKey(Long id);

    int insert(User user);

    int updateByPrimaryKey(User user);

    int deleteByPrimaryKey(Long id);
}

需要注意的是,在UserMapper接口上添加@Mapper注解,表示该接口是Mybatis的Mapper接口;而@Repository注解则表示该类是一个Repository Bean。

在创建Mapper接口后,需要在resources文件夹下新建一个mapper文件夹,并在该文件夹下添加UserMapper.xml文件,示例如下:

<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.mapper.UserMapper">

    <select id="selectByPrimaryKey" resultType="com.example.entity.User">
        select * from user where id = #{id}
    </select>

    <insert id="insert" parameterType="com.example.entity.User">
        insert into user(name, age) values(#{name}, #{age})
    </insert>

    <update id="updateByPrimaryKey" parameterType="com.example.entity.User">
        update user set name=#{name},age=#{age} where id=#{id}
    </update>

    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
        delete from user where id =#{id}
    </delete>

</mapper>

selectinsertupdatedelete标签中,id属性为对应的Mapper接口中方法名,parameterType属性为Mapper接口方法的参数类型,resultType属性为查询结果的实体类类型。

4. Service层

接下来,我们需要新建一个Service接口和实现类,在com.example.service包下创建UserService接口,示例如下:

public interface UserService {
    User selectByPrimaryKey(Long id);

    int insert(User user);

    int updateByPrimaryKey(User user);

    int deleteByPrimaryKey(Long id);
}

然后,在com.example.service.impl包下创建UserServiceImpl类,示例如下:

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public User selectByPrimaryKey(Long id) {
        return userMapper.selectByPrimaryKey(id);
    }

    @Override
    public int insert(User user) {
        return userMapper.insert(user);
    }

    @Override
    public int updateByPrimaryKey(User user) {
        return userMapper.updateByPrimaryKey(user);
    }

    @Override
    public int deleteByPrimaryKey(Long id) {
        return userMapper.deleteByPrimaryKey(id);
    }
}

需要注意的是,在UserServiceImpl类上添加@Service注解,表示该类是一个Service Bean。同时,我们在该类中注入了UserMapper接口,使用该接口中的方法来操作数据库。

5. Controller层

最后,我们需要在com.example.controller包下创建一个UserController类,示例如下:

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

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

    @PostMapping("")
    public int insert(@RequestBody User user) {
        return userService.insert(user);
    }

    @PutMapping("")
    public int updateByPrimaryKey(@RequestBody User user) {
        return userService.updateByPrimaryKey(user);
    }

    @DeleteMapping("/{id}")
    public int deleteByPrimaryKey(@PathVariable("id") Long id) {
        return userService.deleteByPrimaryKey(id);
    }
}

需要注意的是,在UserController类上添加@RestController注解,表示该类是一个处理HTTP请求的Controller Bean。在类中注入了UserService接口,并在方法中调用该接口中的方法。

6. 代码测试

在完成上述操作后,我们已经可以在浏览器中访问http://localhost:8080/user/1来查询用户ID为1的记录了。现在,我们可以使用Postman来进行增、删、改操作。示例如下:

插入记录

  • 请求方式:POST
  • URL:http://localhost:8080/user
  • 请求头:Content-Type: application/json
  • 请求体:
{
    "name": "test",
    "age": 25
}

更新记录

  • 请求方式:PUT
  • URL:http://localhost:8080/user
  • 请求头:Content-Type: application/json
  • 请求体:
{
    "id": 1,
    "name": "update",
    "age": 30
}

删除记录

  • 请求方式:DELETE
  • URL:http://localhost:8080/user/1

至此,我们完成了SpringBoot整合Mybatis简单实现增删改查的攻略。在实际开发中,我们还可以通过分页和条件查询等方式来增强用户操作体验。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合Mybatis简单实现增删改查 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • SpringBoot 自定义注解实现涉密字段脱敏

    下面是关于“SpringBoot 自定义注解实现涉密字段脱敏”的完整攻略。 目录 需求分析 脱敏实现思路 注解类编写 注解使用及脱敏处理 测试示例1 测试示例2 需求分析 现实生活中,很多敏感信息,如用户的身份信息、密码等,为了保障用户数据的安全,需要进行脱敏处理。本文将实现一个自定义的注解,用于对敏感信息进行脱敏处理。 脱敏实现思路 脱敏处理的方法有很多,…

    Java 2023年5月20日
    00
  • Java SpringBoot Validation用法案例详解

    这里是关于Java SpringBoot Validation用法的详细攻略。 什么是Java SpringBoot Validation Java SpringBoot Validation是一种用于验证表单输入数据的框架,能够确保数据的合法性和完整性。它能够自动完成JavaBean的数据验证,并且给出友好的错误提示信息。 如何使用Java SpringB…

    Java 2023年5月19日
    00
  • Java实现部门员工管理

    Java实现部门员工管理攻略 1.需求分析 在进行Java实现部门员工管理之前,首先需要了解需求。具体来说,针对要建立的员工管理系统,需要明确以下几个方面的需求: 系统具有添加员工、删除员工、修改员工信息、查询员工信息等基本功能 每个员工需包含姓名、职位、手机号、邮箱、地址等信息 由于涉及到部门的管理,因此每个员工还应当分配到某个特定的部门中 在进行员工管理…

    Java 2023年5月31日
    00
  • Gson中@JsonAdater注解的几种方式总结

    当我们使用Gson将Java对象序列化成JSON字符串或者JSON字符串反序列化成Java对象的时候,我们需要做一些特殊的处理,例如处理JSON字符串中的日期格式、处理JSON字符串中的空值、处理JSON字符串中特定字段的命名等等。Gson提供了@JsonAdapter注解来满足这些需求,它可以对序列化和反序列化过程中的数据进行自定义转换,下面我们来详细介绍…

    Java 2023年5月26日
    00
  • Java 获取指定日期的实现方法总结

    Java 获取指定日期的实现方法总结 本文总结了在Java中获取指定日期的几种常见方法。 1. 通过日期字符串生成日期对象 在Java中,我们可以通过日期字符串生成日期对象,然后可以进行各种操作。下面是一个示例代码: import java.text.SimpleDateFormat; import java.util.Date; public class …

    Java 2023年5月20日
    00
  • JSP动态网页开发技术概述

    JSP动态网页开发技术概述 JSP(Java Server Pages,Java服务器页面)是一种基于Java语言开发的动态网页开发技术,它使得开发人员可以使用Java语言编写动态网页,在页面中嵌入Java代码,以及实现动态内容的显示和数据的交互。下面是使用JSP开发动态网页的完整攻略: 一、环境配置 使用JSP开发动态网页需要安装以下软件: JDK:用于编…

    Java 2023年6月15日
    00
  • SpringMVC文件上传原理及实现过程解析

    SpringMVC文件上传原理解析 在SpringMVC文件上传时,客户端向服务器发送文件,SpringMVC通过MultipartResolver对请求进行处理,解析出其中的文件,并将文件保存到指定的位置。MultipartResolver是一个接口,SpringMVC提供了两种实现方式: StandardServletMultipartResolver:…

    Java 2023年6月16日
    00
  • java使用jar包生成二维码的示例代码

    下面是Java使用jar包生成二维码的完整攻略: 1. 引入Jar包 在Java中使用二维码需要引入第三方Jar包,可以使用Zxing或者QrCode这两个常用的Jar包。这里以Zxing为例,可以从官网或者Maven库中下载获取。 2. 生成二维码 import java.awt.Color; import java.awt.Graphics2D; imp…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部