• 使用Spring Boot和MyBatis访问数据库


    使用Spring Boot和MyBatis访问数据库

    Spring Boot和MyBatis是Java开发中非常流行的框架,它们可以帮助你轻松地构建和管理数据库应用程序。本文将介绍如何使用Spring Boot和MyBatis访问数据库,并提供示例代码以帮助你入门。

    在这里插入图片描述

    准备工作

    在开始之前,确保你已经安装了以下软件:

    1. Java Development Kit (JDK)
    2. Spring Boot
    3. MyBatis
    4. 数据库(本文以MySQL为例)

    如果你还没有安装这些软件,可以访问官方网站并按照它们的安装指南进行安装。

    创建Spring Boot项目

    首先,我们需要创建一个Spring Boot项目。你可以使用Spring Initializer来创建一个基本的Spring Boot项目,也可以使用IDE(如IntelliJ IDEA或Eclipse)来创建。

    使用Spring Initializer创建项目

    访问 Spring Initializer 网站,在这个网站上你可以选择项目的依赖和设置。对于本文,我们将选择以下依赖:

    • Spring Web
    • Spring Boot DevTools
    • MyBatis Framework
    • MySQL Driver(如果你使用其他数据库,选择相应的驱动)

    点击"Generate"按钮,下载生成的项目压缩包并解压它。

    使用IDE创建项目

    如果你使用IDE来创建项目,可以按照以下步骤:

    1. 打开你的IDE,选择创建新的Spring Boot项目。
    2. 选择项目的名称和位置。
    3. 在项目设置中选择Spring Web、Spring Boot DevTools、MyBatis Framework和MySQL Driver等依赖。
    4. 完成项目创建。

    配置数据库连接

    接下来,我们需要配置数据库连接。在Spring Boot项目中,数据库连接配置通常在application.propertiesapplication.yml文件中完成。在项目的src/main/resources目录下找到这个文件并添加以下配置:

    # 数据库连接配置
    spring.datasource.url=jdbc:mysql://localhost:3306/your_database
    spring.datasource.username=your_username
    spring.datasource.password=your_password
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
    # MyBatis配置
    mybatis.mapper-locations=classpath*:mapper/*.xml
    mybatis.type-aliases-package=com.example.demo.model
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    请替换上述配置中的your_databaseyour_usernameyour_password为你自己数据库的信息。

    创建实体类

    在使用MyBatis访问数据库时,你需要创建实体类来映射数据库表。创建一个简单的实体类示例:

    package com.example.demo.model;
    
    public class User {
        private Long id;
        private String username;
        private String email;
    
        // 省略构造方法和getter/setter
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    创建Mapper接口

    Mapper接口定义了数据库操作的方法。创建一个Mapper接口来操作用户数据:

    package com.example.demo.mapper;
    
    import com.example.demo.model.User;
    import org.apache.ibatis.annotations.*;
    
    import java.util.List;
    
    @Mapper
    public interface UserMapper {
        @Select("SELECT * FROM user")
        List<User> findAll();
    
        @Select("SELECT * FROM user WHERE id = #{id}")
        User findById(Long id);
    
        @Insert("INSERT INTO user(username, email) VALUES(#{username}, #{email})")
        @Options(useGeneratedKeys = true, keyProperty = "id")
        void save(User user);
    
        @Update("UPDATE user SET username = #{username}, email = #{email} WHERE id = #{id}")
        void update(User user);
    
        @Delete("DELETE FROM user WHERE id = #{id}")
        void delete(Long id);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    在这个Mapper接口中,我们使用了MyBatis的注解来定义SQL语句以及参数的映射关系。

    创建Mapper XML 文件

    除了注解方式,我们也可以使用XML文件来定义SQL语句。在src/main/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.demo.mapper.UserMapper">
        <select id="findAll" resultType="com.example.demo.model.User">
            SELECT * FROM user
        select>
    
        <select id="findById" resultType="com.example.demo.model.User">
            SELECT * FROM user WHERE id = #{id}
        select>
    
        <insert id="save">
            INSERT INTO user(username, email) VALUES(#{username}, #{email})
        insert>
    
        <update id="update">
            UPDATE user SET username = #{username}, email = #{email} WHERE id = #{id}
        update>
    
        <delete id="delete">
            DELETE FROM user WHERE id = #{id}
        delete>
    mapper>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    这个XML文件定义了与Mapper接口中相同的SQL语句。

    创建Service和Controller

    接下来,我们创建一个Service类和一个Controller类来处理业务逻辑和处理HTTP请求。创建一个名为UserService的Service类:

    package com.example.demo.service;
    
    import com.example.demo.mapper.UserMapper;
    import com.example.demo.model.User;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service
    public class UserService {
        private final UserMapper userMapper;
    
        @Autowired
        public UserService(UserMapper userMapper) {
            this.userMapper = userMapper;
        }
    
        public List<User> findAll() {
            return userMapper.findAll();
        }
    
        public User findById(Long id) {
            return userMapper.findById(id);
        }
    
        public void save(User user) {
            userMapper.save(user);
        }
    
        public void update(User user) {
            userMapper.update(user);
        }
    
        public void delete(Long id) {
            userMapper.delete(id);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    然后,创建一个名为UserController的Controller类来处理HTTP请求:

    package com.example.demo.controller;
    
    import com.example.demo.model.User;
    import com.example.demo.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 {
        private final UserService userService;
    
        @Autowired
        public UserController(UserService userService) {
            this.userService = userService;
        }
    
        @GetMapping("/")
        public List<User> getAllUsers() {
            return userService.findAll();
        }
    
        @GetMapping("/{id}")
        public User getUserById(@PathVariable Long id) {
            return userService
    
    .findById(id);
        }
    
        @PostMapping("/")
        public void createUser(@RequestBody User user) {
            userService.save(user);
        }
    
        @PutMapping("/{id}")
        public void updateUser(@PathVariable Long id, @RequestBody User user) {
            user.setId(id);
            userService.update(user);
        }
    
        @DeleteMapping("/{id}")
        public void deleteUser(@PathVariable Long id) {
            userService.delete(id);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    运行项目

    现在,你已经完成了Spring Boot和MyBatis的配置,创建了实体类、Mapper接口、Mapper XML文件,以及Service和Controller类。接下来,你可以运行你的Spring Boot应用程序。如果一切正常,你可以使用HTTP请求来访问数据库中的数据。

    结论

    本文介绍了如何使用Spring Boot和MyBatis访问数据库。通过配置数据库连接、创建实体类、Mapper接口和Mapper XML文件,以及编写Service和Controller类,你可以轻松地构建数据库应用程序。当然,这只是一个入门示例,实际项目中可能会更复杂,但这个示例可以作为一个良好的起点。

    希望本文对你有所帮助,祝你在使用Spring Boot和MyBatis开发数据库应用程序时顺利前行!

  • 相关阅读:
    亚马逊云科技AI创新应用下的托管在AWS上的数据可视化工具—— Amazon QuickSight
    第3部分 静态路由
    C#面对对象(英雄联盟人物管理系统)
    Pycharm中配置不了conda解释器
    1.4.24 实验24:华为基本ACL
    凯撒密码加密、解密、暴力破解(C语言实现)
    【实用调试技巧】总是找不到Bug?手把手教你在vs2022中调试程序
    GB28181学习(十)——视音频文件下载
    @GrpcServise 注解的作用和使用
    python处理 json, pt, csv, npy文件 -- 打开与保存
  • 原文地址:https://blog.csdn.net/stormjun/article/details/133243792