SpringBoot 整合MyBatis

一、MyBatis 简介

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Ordinary Java Objects,简单 Java 对象)为数据库中的记录。

参考自 MyBatis 的官方简介。

MyBatis 作为一款优秀的持久层框架,具有如下优点:

  1. 小巧并且简单易学。
  2. 相比于 JDBC 减少了大量冗余的代码。
  3. 将 SQL 语句与程序代码进行分离,降低了耦合,便于管理。
  4. 提供 XML 标签,支持编写动态 SQL 语句。
  5. 提供映射标签,支持 Java 对象的属性与数据表字段的映射关系。

二、创建一个springboot模块

三、导入依赖

在pom.xml中添加依赖

<!--mybatis依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>

        <!--MySQL数据库连接的依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>

        <!--lombok插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
            <scope>provided</scope>
        </dependency>

四、添加配置文件

在resource目录下创建application.yml配置文件,内容如下

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.augus.pojo

五、在java下创建包com.augus,内容如下:

实现案例:在mydb中数据库中有一个user表,从中读取内容内容

1.在com.augus下创建包pojo

在里面创建User实体类,内容如下:

package com.augus.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@AllArgsConstructor
@NoArgsConstructor
@Data
public class User implements Serializable {
    private Integer uid;
    private String username;
    private String password;
}

2.创建mapper包

在下面创建UserMapper接口内容为:

package com.augus.mapper;


import com.augus.pojo.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface UserMapper {
    List<User> findAll();
}

3.创建包service

创建UserService接口,内容如下:

package com.augus.service;

import com.augus.pojo.User;

import java.util.List;

public interface UserService {
    List<User> queryAllUser();
}

创建impl包在里面创建UserService接口的实现类:UserServiceImpl

package com.augus.service.impl;

import com.augus.mapper.UserMapper;
import com.augus.pojo.User;
import com.augus.service.UserService;
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> queryAllUser() {
        return userMapper.findAll();
    }
}

4.创建包controller

创建UserController,内容如下

package com.augus.controller;

import com.augus.pojo.User;
import com.augus.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("findAll")
    @ResponseBody
    public List<User> findAll(){
        return userService.queryAllUser();
    }
}

六、在resource包创建包mapper

在mapper包下创建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.augus.mapper.UserMapper">
    <!--findAllUser-->
    <select id="findAll" resultType="user">
        select * from user
    </select>
</mapper>

七、启动项目,进行测试

启动项目后,在浏览器访问http://localhost:8080/user/findAll,如下图所示

posted @ 2022-11-08 15:03  酒剑仙*  阅读(71)  评论(0)    收藏  举报