Springboot整合Mybatis

泡泡大可爱發表於2024-10-13

1、建立springboot專案

2、勾選mysql驅動和web驅動

3、pom.xml匯入相關依賴

  <!--MyBatisPlus啟動器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.1</version> <!-- 這裡修改版本號 -->
        </dependency>
<!--
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>3.5.3.1</version>
        </dependency>
-->

        <!--資料庫驅動-->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!--lombok外掛-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!--單元測試工具-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

注意
mybatis - plus - boot - starter和mybatis - plus這兩個依賴在功能上有一定的重疊,但在 Spring Boot 專案中,它們的角色有所不同,並且不是絕對缺一不可,具體取決於你的專案需求。
mybatis - plus - boot - starter依賴
這是專門為 Spring Boot 專案設計的起步依賴。它內部包含了許多自動配置相關的內容,可以讓 MyBatis - Plus 與 Spring Boot 更好地整合。
當你在 Spring Boot 專案中引入mybatis - plus - boot - starter時,Spring Boot 會自動進行一系列的配置,例如自動配置資料來源、MyBatis - Plus 的核心元件等。它會根據你的配置檔案(如application.properties或application.yml)自動設定合適的引數,極大地簡化了在 Spring Boot 環境下使用 MyBatis - Plus 的過程。
如果你正在開發一個 Spring Boot 應用並且想要快速整合 MyBatis - Plus,這個依賴是非常關鍵的。
mybatis - plus依賴
mybatis - plus這個依賴包含了 MyBatis - Plus 的核心功能,如增強的 CRUD 操作、條件構造器、程式碼生成器等基礎功能元件。
在非 Spring Boot 專案或者你想手動配置 MyBatis - Plus 與 Spring(非 Spring Boot)的整合時,這個依賴是必不可少的。但在 Spring Boot 專案中,如果你已經引入了mybatis - plus - boot - starter,很多情況下mybatis - plus依賴中的內容已經被包含或者自動配置了。
4、配置application.yml檔案

#伺服器埠號
server:
  port: 8080
spring:
  #資料庫連線驅動
  datasource:
    url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: root
#配置MyBatisPlus
mybatis-plus:
  #配置識別Mybatisplus的XML檔案
  mapper-locations: classpath:mapper/*.xml
  #配置包名別名
  type-aliases-package: com.mes.pojo
  #配置sql列印
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

5、建立對應包名

6、建立pojo類

package com.mes.pojo;

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

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Users {
    private Integer id;
    private String name;
    private String password;
}

7、建立mapper,並且繼承BaseMapper介面

package com.mes.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
//import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.mes.pojo.Users;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
public interface UsersMapper extends BaseMapper<Users> {
    public List<Users> getAll();
}

@Mapper表示唄spring容器接管 是一個mapper類
8、建立service和對應的serviceImpl類
service繼承IService介面
serviceImpl繼承ServiceImpl實現類並且實現剛才建立的service

package com.mes.service;

//import com.baomidou.mybatisplus.service.IService;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.pojo.Users;

import java.util.List;

public interface UsersService extends IService<Users> {
    public List<Users> getAll();
    public List<Users> getAllUsers();
}
package com.mes.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
//import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.mes.mapper.UsersMapper;
import com.mes.pojo.Users;
import com.mes.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Collections;
import java.util.List;


@Service
public class UsersServiceImpl extends ServiceImpl<UsersMapper, Users> implements UsersService {

    @Autowired
    UsersMapper usersMapper;

    @Override
    public List<Users> getAll() {
        return usersMapper.getAll();
    }

    @Override
    public List<Users> getAllUsers(){
        return usersMapper.selectList(null);
    }
}

9、建立mapper.xml檔案在resources目錄下

<?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.mes.mapper.UsersMapper">
    <select id="getAll" resultType="Users">
        select * from  users;
    </select>
</mapper>

這裡是識別xml檔案的配置路徑

10、寫一個Controller測試

package com.mes.controller;

import com.mes.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    UsersService usersService;

    @GetMapping("/list")
    public String listUser() {
        return usersService.getAll().toString();
    }

    @GetMapping("/list2")
    public String listUser2() {
        return usersService.getAllUsers().toString();
    }
}

啟動成功去訪問localhost:8080/user/list 看下有沒有資料

相關文章