Spring Boot整合Mybatis并完成CRUD操作的实现示例

下面我将详细讲解“Spring Boot整合Mybatis并完成CRUD操作的实现示例”的完整攻略。

一、环境准备

开发这个项目需要准备如下环境:

  • JDK8
  • Maven
  • IDEA或Eclipse
  • MySQL数据库

二、创建Spring Boot项目

  1. 打开IDEA,点击 File -> New -> Project 来创建一个Spring Boot项目,选择 Spring Initializr 选项;

  2. 在弹出的页面上,选择如下选项:

  3. Project SDK: 选择你的 JDK8 版本

  4. Project Language: 选择 Java
  5. Spring Boot: 选择 2.5.5(或更高) 版本
  6. Project Metadata: 根据需求填写metadata信息

  7. 点击 Next 按钮,在下一个页面中添加如下依赖:

  8. Spring Web

  9. MyBatis Framework
  10. MySQL Driver
  11. Lombok

  12. 点击 Next 按钮来确认配置,之后点击 Finish 并等待项目创建完成。

三、配置数据库

  1. 在项目的resource目录下,创建一个 application.yml 的文件,用于配置项目的相关信息,如下所示:

yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456

要根据自己的实际数据库配置信息来填写上述配置。

  1. 接下来,在resource目录下 创建 mybatis 文件夹,并在该文件夹下创建 mapper 文件夹和 config 文件夹。

  2. config 文件夹下新建一个 MybatisConfig.java 文件,配置Mybatis相关信息,如下所示:

```java
@Configuration
@MapperScan("com.example.mapper")
public class MybatisConfig {
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);

       // 为实体类的别名指定的包路径(不指定在XML文件中的参数需要写全路径)
       sessionFactoryBean.setTypeAliasesPackage("com.example.entity");

       // 添加XML资源路径
       PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
       sessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:mybatis/mapper/*.xml"));

       return sessionFactoryBean.getObject();
   }

}
```

  1. 接着,在 mapper 文件夹下新建 UserMapper.javaUserMapper.xml 两个文件,分别用于定义Mapper接口和SQL语句。

  2. UserMapper.java

    java
    public interface UserMapper {
    List<User> findAllUsers();
    void insertUser(User user);
    User findUserById(Integer id);
    void updateUser(User user);
    void deleteUserById(Integer id);
    }

  3. UserMapper.xml

    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="com.example.mapper.UserMapper">
    <select id="findAllUsers" resultType="com.example.entity.User">
    SELECT * FROM user;
    </select>
    <insert id="insertUser">
    INSERT INTO `user` ( `username`, `password`) VALUES (#{username}, #{password});
    </insert>
    <select id="findUserById" resultType="com.example.entity.User">
    SELECT * FROM user WHERE id=#{id};
    </select>
    <update id="updateUser">
    UPDATE `user` SET `username` = #{username}, `password` = #{password} WHERE id = #{id};
    </update>
    <delete id="deleteUserById">
    DELETE FROM `user` WHERE id=#{id};
    </delete>
    </mapper>

  4. 最后,在 entity 包下新建一个 User.java 文件,该文件对应上述SQL中的 user 表,如下所示:

java
@Data // 使用 lombok 自动生成getter、setter、toString 方法
public class User {
private Integer id;
private String username;
private String password;
}

四、定义控制器

在项目中定义一个控制器,用于和前端页面交互,完成 CURD 操作。

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

    @Autowired
    private UserMapper userMapper;

    @GetMapping("/findAll")
    public List<User> findAll() {
        return userMapper.findAllUsers();
    }

    @PostMapping("/addUser")
    public String addUser(@RequestBody User user) {
        userMapper.insertUser(user);
        return "success";
    }

    @GetMapping("/findById/{id}")
    public User findById(@PathVariable Integer id) {
        return userMapper.findUserById(id);
    }

    @PutMapping("/updateUser")
    public String updateUser(@RequestBody User user) {
        userMapper.updateUser(user);
        return "success";
    }

    @DeleteMapping("/deleteUser/{id}")
    public String deleteUser(@PathVariable Integer id) {
        userMapper.deleteUserById(id);
        return "success";
    }
}

其中 /user/findAll 表示查询所有用户, /user/addUser 表示新增用户, /user/findById/{id} 表示根据id查询用户, /user/updateUser 表示修改用户信息, /user/deleteUser/{id} 表示删除用户。

五、启动项目并测试

  1. 启动项目

在IDEA中,点击项目中的 Run 按钮,或使用快捷键 Shift+F10 来启动项目。

  1. 测试项目

通过 Postman 或者浏览器输入以下地址进行测试:

  • 查询所有用户:http://localhost:8080/user/findAll/
  • 新增用户:http://localhost:8080/user/addUser/
  • 查询用户:http://localhost:8080/user/findById/{id}
  • 修改用户:http://localhost:8080/user/updateUser/
  • 删除用户:http://localhost:8080/user/deleteUser/{id}

至此,Spring Boot整合Mybatis并完成CRUD操作的实现示例已经完成了。

示例代码1: https://github.com/spring-projects/spring-boot/tree/main/spring-boot-samples/spring-boot-sample-mybatis

示例代码2: https://github.com/zhua2517/springboot-mybatis-plus-demo

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot整合Mybatis并完成CRUD操作的实现示例 - Python技术站

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

相关文章

  • 如何使用Python连接MySQL数据库?

    使用Python连接MySQL数据库可以使用Python的mysql-connector模块。该模块提供了一个Python接口,用于连接和操作MySQL数据库。以下是使用Python连接数据库的完整攻略: 安装mysql-connector 在使用mysql-connector模块之前,需要先安装该模块。可以使用以下命令在命令行中安装: pip instal…

    python 2023年5月12日
    00
  • SQL 查找满足多个查询条件的行

    SQL是一种用于管理关系型数据库的编程语言,常常用于处理大量数据并从中检索特定的内容。当需要查找满足多个查询条件的行时,可以利用SQL中的“AND”和“OR”等逻辑运算符来实现。下面将详细讲解SQL查找满足多个查询条件的行的完整攻略。 查找满足多个查询条件的行的基本结构 SQL中可以使用SELECT语句来查找特定的行,同时还可以使用WHERE语句来指定特定的…

    database 2023年3月27日
    00
  • python利用微信公众号实现报警功能

    通过本次对话,我将为大家详细讲解如何利用Python和微信公众号实现报警功能。 目录 准备工作 注册微信公众号并获取相关信息 开发报警程序 测试报警程序 示例说明 总结 1. 准备工作 在利用Python实现微信公众号报警功能之前,需要准备好以下工具和环境: Python解释器:推荐使用Python3.X。 requests库:用于发送HTTP请求。 wxp…

    database 2023年5月22日
    00
  • C#操作MySql的方法是什么

    这篇文章主要讲解了“C#操作MySql的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#操作MySql的方法是什么”吧! 代码介绍 功能包含: 创建数据库 创建数据表 批量添加数据 MySql事务执行 清表 分页、模糊查询 代码实现 创建数据库 public void CreateDatabase…

    MySQL 2023年4月11日
    00
  • Linux内核设备驱动之内存管理笔记整理

    我来详细解析一下“Linux内核设备驱动之内存管理笔记整理”的攻略。 概述 本文旨在介绍 Linux 内核设备驱动中的内存管理部分,包括内存的分配、释放、映射等方面,并对常用的内存管理 API 做简单的示例介绍。 内存分配 在 Linux 内核中,内存的分配可以通过kmalloc 和 vmalloc 两个函数实现。 kmalloc kmalloc 函数可以用…

    database 2023年5月22日
    00
  • 以前架征途时的合区的SQL语句代码备份

    以前架设途游时的合区过程涉及到对数据库进行备份和修改操作。下面,我们将详细讲解如何备份“以前架征途时的合区的SQL语句代码”。 1. 进入MySQL命令行 首先,需要在本机安装MySQL数据库,并打开MySQL命令行模式,输入以下命令: mysql -u root -p 然后,输入MySQL用户密码,即可进入MySQL命令行模式。 2. 备份数据库 在MyS…

    database 2023年5月21日
    00
  • Oracle 11.2.0.4打补丁的方法

    下面是详细讲解Oracle 11.2.0.4打补丁的方法的完整攻略: 1. 下载Oracle 11.2.0.4补丁 在Oracle官网上下载对应的补丁压缩包,文件名通常为pXXXXXXX_112040_Linux-x86-64.zip,其中XXXXXXX为补丁的编号。 2. 解压补丁压缩包 将补丁压缩包解压到任意目录下,例如/opt/patches目录。 u…

    database 2023年5月22日
    00
  • redis使用get key中文变成十六进制编码

    redis-cli 后面加上 –raw 解决中文显示问题   redis-cli -h 127.0.0.1 -p 端口 -a 密码  –raw 不带 –raw 参数: redis-cli -h 10.168.99.70 -p 6379 10.168.99.70:6379> set a “你好” OK 10.168.99.70:6379> g…

    Redis 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部