使用Spring Boot和MyBatis连接数据库的步骤

1. 概述

在使用Spring Boot和MyBatis连接数据库之前,我们首先需要了解整个流程。下面是连接数据库的步骤概述:

gantt
    title 连接数据库的步骤

    section 创建Spring Boot项目
    创建项目结构: 0, 1, 1d
    添加依赖: 1d, 1d

    section 配置数据库连接
    添加数据库连接配置: 2d, 1d

    section 创建实体类和数据库表
    创建实体类: 3d, 1d
    创建数据库表: 3d, 1d

    section 创建Mapper接口和XML文件
    创建Mapper接口: 4d, 1d
    创建XML文件: 4d, 1d

    section 编写业务逻辑代码
    编写Service接口和实现类: 5d, 1d

    section 测试代码
    编写测试代码: 6d, 1d

2. 创建Spring Boot项目

首先,我们需要创建一个Spring Boot项目。可以使用Spring Initializr ( 来快速生成项目结构。

在创建项目时,我们需要添加以下依赖:

  • Spring Boot Starter Web:用于创建Web应用程序
  • MyBatis Starter:用于集成MyBatis
  • MySQL Driver:用于连接MySQL数据库

在生成的项目结构中,我们将在src/main/java目录下创建Java文件,并在src/main/resources目录下创建配置文件和XML文件。

3. 配置数据库连接

src/main/resources目录下,创建名为application.properties的配置文件,并配置数据库连接信息。

spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

请注意将以上代码中的mydatabase替换为你自己的数据库名称,并根据实际情况修改数据库的用户名和密码。

4. 创建实体类和数据库表

src/main/java目录下,创建名为com.example.demo.model的包,并在该包下创建实体类。

package com.example.demo.model;

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

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

同时,我们还需要在MySQL数据库中创建名为user的表。

CREATE TABLE user (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    email VARCHAR(50)
);

5. 创建Mapper接口和XML文件

src/main/java目录下,创建名为com.example.demo.mapper的包,并在该包下创建Mapper接口。

package com.example.demo.mapper;

import com.example.demo.model.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

@Mapper
public interface UserMapper {
    List<User> getAllUsers();
    void insertUser(User user);
    void updateUser(User user);
    void deleteUser(Long id);
}

src/main/resources目录下,创建名为userMapper.xml的XML文件,并编写对应的SQL语句。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "
<mapper namespace="com.example.demo.mapper.UserMapper">
    <select id="getAllUsers" resultType="com.example.demo.model.User">
        SELECT * FROM user
    </select>

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

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

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

6. 编写业务逻辑代码

src/main/java目录下,创建名为com.example.demo.service的包,并在该包下创建Service接口和实现类。

package com.example.demo.service;

import com.example.demo.model.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

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

    @Override
    public List<User> getAllUsers() {
        return userMapper.getAllUsers();