使用Spring Boot和MyBatis访问数据库

使用Spring Boot和MyBatis访问数据库

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

使用Spring Boot和MyBatis访问数据库_第1张图片

准备工作

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

  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

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

创建实体类

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

package com.example.demo.model;

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

    // 省略构造方法和getter/setter
}

创建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);
}

在这个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>

这个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);
    }
}

然后,创建一个名为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);
    }
}

运行项目

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

结论

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

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

你可能感兴趣的:(Java,教程,spring,boot,mybatis,数据库)