当前位置:   article > 正文

Spring Boot 通过mybatis接入MySql数据库_springboot引入mysql

springboot引入mysql

Spring Boot通过Mybatis接入MySQL数据库

介绍

Web应用程序中,数据库是一个重要的组成部分。而Spring Boot和Mybatis是Java开发中常用的框架和工具,它们可以帮助我们快速、高效地访问和操作数据库。

前提条件

确保您已经安装了Java开发环境和Maven构建工具,以及MySQL数据库。

步骤一:创建Spring Boot项目

首先,我们需要创建一个新的Spring Boot项目。可以使用Spring Initializr(https://start.spring.io/)来快速创建一个空项目,选择"Maven Project"、“Java”、“Spring Boot 版本”、"项目依赖(Web, Mybatis, MySQL)"等选项,然后点击"Generate"按钮下载生成的项目。

在使用MyBatis接入MySQL数据库时,需要引入以下依赖:

1. MyBatis依赖:
  • MyBatis是一款开源的持久层框架,使用它可以方便地操作数据库。
  • 在Maven项目中,需要在pom.xml文件中添加以下依赖:
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
2. MySQL连接驱动依赖:
  • MySQL连接驱动是用于与MySQL数据库建立连接的组件。
  • 在Maven项目中,需要在pom.xml文件中添加以下依赖:
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

步骤二:配置MySQL数据库连接

打开项目的application.properties文件(或者是application.yml文件),在其中添加以下MySQL数据库的配置信息。请将your-databaseyour-usernameyour-password替换为实际的数据库名、用户名和密码。

spring.datasource.url=jdbc:mysql://localhost:3306/your-database?useSSL=false&serverTimezone=UTC
spring.datasource.username=your-username
spring.datasource.password=your-password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  • 1
  • 2
  • 3
  • 4

步骤三:定义实体类

创建一个Java类,表示数据库中的某个表。这个类通常称为实体类或模型类。属性和数据库表中的字段对应。例如,下面是定义一个名为User的实体类的例子:

public class User {
    private Long id;
    private String name;
    private String email;
    // 省略getter和setter方法
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

步骤四:创建Mapper接口

创建一个UserMapper接口,用于定义对User表进行操作的方法。该接口使用Mybatis的注解来定义数据库操作。例如,下面是一个简单的UserMapper接口的例子:

@Mapper
public interface UserMapper {
    @Select("SELECT * FROM user")
    List<User> findAll();
  
    @Insert("INSERT INTO user(name, email) VALUES(#{name}, #{email})")
    @Options(useGeneratedKeys = true, keyProperty = "id")
    void insert(User user);
  
    @Update("UPDATE user SET name=#{name}, 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

步骤五:创建Service接口和实现类

创建一个UserService接口,用于定义业务逻辑相关的方法。然后创建一个实现类UserServiceImpl,实现UserService接口,并在该实现类中注入UserMapper。我们可以在实现类中编写更复杂的业务逻辑。例如,下面是一个简单的UserServiceImpl的例子:

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
  
    @Override
    public List<User> getAllUsers() {
        return userMapper.findAll();
    }
  
    @Override
    public void addUser(User user) {
        userMapper.insert(user);
    }
  
    @Override
    public void updateUser(User user) {
        userMapper.update(user);
    }
  
    @Override
    public void deleteUser(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

步骤六:创建Controller类

创建一个UserController类,用于处理HTTP请求。在其中注入UserService,并编写对应的请求处理方法。例如,下面是一个简单的UserController的例子:

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;
  
    @GetMapping()
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }
  
    @PostMapping()
    public void addUser(@RequestBody User user) {
        userService.addUser(user);
    }
  
    @PutMapping("/{id}")
    public void updateUser(@PathVariable("id") Long id, @RequestBody User user) {
        user.setId(id);
        userService.updateUser(user);
    }
  
    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable("id") Long id) {
        userService.deleteUser(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

步骤七:运行项目

在命令行中,进入项目的根目录,执行mvn spring-boot:run命令来运行应用程序。或者,直接运行IDE中的启动类。

现在,您已经成功使用Spring Boot和Mybatis来接入MySQL数据库了!您可以使用各种HTTP客户端或浏览器来测试刚刚创建的API。例如,可以使用cURL命令行工具发送HTTP请求,如curl localhost:8080/users

步骤四(补充):创建Mapper接口和XML文件

我们通常还会使用XML文件进行操作,下面补充这种实现形式。

创建一个名为UserMapper的Java接口,用于定义对User表进行操作的方法。然后,创建一个名为UserMapper.xml的XML文件,用于实现这些方法。

UserMapper接口:

@Mapper
public interface UserMapper {
    List<User> findAll();
    void insert(User user);
    void update(User user);
    void delete(Long id);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

UserMapper.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="findAll" resultType="com.example.model.User">
        SELECT * FROM user
    </select>

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

    <update id="update">
        UPDATE user SET name=#{name}, 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

注意:要将UserMapper.xml文件放在与UserMapper接口相同的包路径下,并确保在application.properties(或application.yml)文件中配置了正确的Mybatis配置。

mybatis.mapper-locations=classpath:mapper/**/*.xml
mybatis.type-aliases-package=com.example.model
  • 1
  • 2

创建一个名为UserMapperImpl的类,并实现UserMapper接口。在该实现类中注入SqlSession,用来执行SQL语句。

@Repository
public class UserMapperImpl implements UserMapper {
    private final SqlSession sqlSession;
  
    public UserMapperImpl(SqlSession sqlSession) {
        this.sqlSession = sqlSession;
    }
  
    @Override
    public List<User> findAll() {
        return sqlSession.selectList("com.example.mapper.UserMapper.findAll");
    }
  
    @Override
    public void insert(User user) {
        sqlSession.insert("com.example.mapper.UserMapper.insert", user);
    }
  
    @Override
    public void update(User user) {
        sqlSession.update("com.example.mapper.UserMapper.update", user);
    }
  
    @Override
    public void delete(Long id) {
        sqlSession.delete("com.example.mapper.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
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号