最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot?整合Mybatis-Plus并輸出SQL日志示例詳解

 更新時(shí)間:2023年06月05日 10:35:12   作者:太空眼睛  
這篇文章主要介紹了SpringBoot整合Mybatis-Plus并輸出SQL日志,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

本地開(kāi)發(fā)環(huán)境說(shuō)明

開(kāi)發(fā)依賴(lài)版本
Spring Boot3.0.6
Mybatis-Plus3.5.3.1
JDK20

application.yml主要配置

    <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
    </dependency>
    <!-- 根據(jù)需要修改數(shù)據(jù)庫(kù) -->
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
    </dependency>
</dependencies>

@MapperScan注解使用說(shuō)明

@MapperScan注解的作用是用來(lái)指定Mapper接口的位置,示例如下

debug: true
logging:
  level:
    root: debug
spring:
  datasource:
    driver-class-name: org.h2.Driver
    url: jdbc:h2:tcp://localhost/D:/ProgramFiles/h2database/data/test;MODE=MYSQL;
    username:
    password:
mybatis-plus:
  # 所有實(shí)體類(lèi)所在包路徑
  type-aliases-package: com.wen3.**.po
  # mapper.xmml文件路徑,多個(gè)使用逗號(hào)分隔
  mapper-locations: classpath*:resources/mapper/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
  • basePackages一定要指定Mapper接口的包路徑,啟動(dòng)的時(shí)候Mybatis-Plus會(huì)把這個(gè)包及子包下的所有接口當(dāng)做Mapper
  • 比如basePackages的值指定為com.wen3,則會(huì)把Service接口也當(dāng)做Mapper,在調(diào)用方法的時(shí)候就會(huì)報(bào)錯(cuò)org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

實(shí)體類(lèi)示例

package com.wen3.demo.mybatisplus.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
/**
 * <p>
 * 
 * </p>
 *
 * @author tangheng
 * @since 2023-05-21
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("USER")
public class UserPo {
    /**
     * 用戶(hù)id
     */
    @TableId(value = "USER_ID", type = IdType.AUTO)
    private String userId;
    /**
     * 用戶(hù)姓名
     */
    @TableField("USER_NAME")
    private String userName;
    /**
     * 用戶(hù)性別
     */
    @TableField("USER_SEX")
    private String userSex;
    /**
     * 用戶(hù)郵箱
     */
    @TableField("USER_EMAIL")
    private String userEmail;
    /**
     * 用戶(hù)賬號(hào)
     */
    @TableField("USER_ACCOUNT")
    private String userAccount;
    /**
     * 用戶(hù)地址
     */
    @TableField("USER_ADDRESS")
    private String userAddress;
    /**
     * 用戶(hù)密碼
     */
    @TableField("USER_PASSWORD")
    private String userPassword;
    /**
     * 用戶(hù)城市
     */
    @TableField("USER_CITY")
    private String userCity;
    /**
     * 用戶(hù)狀態(tài)
     */
    @TableField("USER_STATUS")
    private Integer userStatus;
    /**
     * 用戶(hù)區(qū)縣
     */
    @TableField("USER_SEAT")
    private String userSeat;
}

Mapper接口示例

package com.wen3.demo.mybatisplus.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wen3.demo.mybatisplus.po.UserPo;
import java.util.Map;
public interface UserMapper extends BaseMapper<UserPo> {
}

Service接口示例

package com.wen3.demo.mybatisplus.service;
import com.wen3.demo.mybatisplus.po.UserPo;
import java.util.Map;
public interface UserService {
    UserPo getById(String userId);
}

Service接口實(shí)現(xiàn)類(lèi)示例

package com.wen3.demo.mybatisplus.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.wen3.demo.mybatisplus.po.UserPo;
import com.wen3.demo.mybatisplus.dao.UserMapper;
import com.wen3.demo.mybatisplus.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.Map;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, UserPo> implements UserService {
    @Override
    public UserPo getById(String userId) {
        LambdaQueryWrapper<UserPo> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(UserPo::getUserId, userId);
        return baseMapper.selectOne(queryWrapper);
    }
}

單元測(cè)試示例

package com.wen3.demo.mybatisplus.service;
import com.wen3.demo.mybatisplus.MybatisPlusSpringbootTestBase;
import com.wen3.demo.mybatisplus.po.UserPo;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.*;
class UserServiceTest extends MybatisPlusSpringbootTestBase {
    @Resource
    private UserService userService;
    @Test
    void getById() {
        String userId = "U11902a8436094248a45dd3821b07e82a1651108484889";
        UserPo testResult = userService.getById(userId);
        log.info("testResult: {}", testResult);
    }
}

打印SQL日志

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
加上這段配置后,SQL的日志確實(shí)是輸出了,在控制臺(tái)可以看到

在這里插入圖片描述

  • StdOutImpl源碼是使用System.out或System.err來(lái)打印SQL的
  • SpringBoot默認(rèn)使用logback日志組件,我們可以使用Mybatis-Plus提供的slf4j實(shí)現(xiàn)

使用slf4j打印SQL

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
  • 重啟后日志沒(méi)打印出來(lái),連控制臺(tái)也沒(méi)有輸出SQL日志
  • 使用slf4j后,日志輸出級(jí)別就由SpringBoot接管了,SpringBoot默認(rèn)是INFO級(jí)別
  • 修改Mybatis-Plus下的日志為DEBUG,比如: logging.level.com.baomidou.mybatisplus=DEBUG
  • 重啟后就能看到日志了

總結(jié)

Mybatis-Plus完全兼容Mybatis,如果項(xiàng)目曾經(jīng)使用的是Mybatis,想要引入Mybatis-Plus,是完成可以的,僅僅是在數(shù)據(jù)源的處理上有稍微細(xì)節(jié)的處理,本人在處理MybatisMybatis-Plus方面具有豐富經(jīng)驗(yàn),如有需要,歡迎交流!

到此這篇關(guān)于SpringBoot 整合Mybatis-Plus并輸出SQL日志的文章就介紹到這了,更多相關(guān)SpringBoot 整合Mybatis-Plus內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談idea中導(dǎo)入maven項(xiàng)目的兩種方式

    淺談idea中導(dǎo)入maven項(xiàng)目的兩種方式

    本文主要介紹了淺談idea中導(dǎo)入maven項(xiàng)目的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • springboot的切面應(yīng)用方式(注解Aspect)

    springboot的切面應(yīng)用方式(注解Aspect)

    文章總結(jié):Spring?Boot提供了三種攔截器:Filter、Interceptor和Aspect,Filter主要用于內(nèi)容過(guò)濾和非登錄狀態(tài)的非法請(qǐng)求過(guò)濾,無(wú)法獲取Spring框架相關(guān)的信息,Interceptor可以在獲取請(qǐng)求類(lèi)名、方法名的同時(shí),獲取請(qǐng)求參數(shù),但無(wú)法獲取參數(shù)值
    2024-11-11
  • java開(kāi)發(fā)技巧代碼寫(xiě)的快且bug少的原因分析

    java開(kāi)發(fā)技巧代碼寫(xiě)的快且bug少的原因分析

    這篇文章主要為大家介紹了java開(kāi)發(fā)中代碼寫(xiě)的快且bug少的原因分析及技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因分析

    JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因分析

    這篇文章主要介紹了JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因分析及簡(jiǎn)單處理方法,文中給大家介紹了javaweb中dbutils的使用,需要的朋友可以參考下
    2017-12-12
  • 解析Java和IDEA中的文件打包問(wèn)題

    解析Java和IDEA中的文件打包問(wèn)題

    這篇文章主要介紹了Java和IDEA中的文件打包問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • Java List 使用舉例(從入門(mén)到精通)

    Java List 使用舉例(從入門(mén)到精通)

    本文系統(tǒng)講解Java List,涵蓋基礎(chǔ)概念、核心特性、常用實(shí)現(xiàn)(如ArrayList、LinkedList)及性能對(duì)比,介紹創(chuàng)建、操作、遍歷方法,結(jié)合實(shí)戰(zhàn)案例,提供選擇策略和優(yōu)化技巧,幫助高效使用List,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • Java中Optional的使用指南

    Java中Optional的使用指南

    這篇文章主要給大家介紹了關(guān)于Java中Optional使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java正則多字符串匹配替換

    Java正則多字符串匹配替換

    正則表達(dá)式異常強(qiáng)大,一直理解不深,用的也不深,這次項(xiàng)目中嘗試,體會(huì)到了它的強(qiáng)大之處。字符串查找,匹配,替換,正則無(wú)不能做,特別是靈活的運(yùn)用子串匹配得到的變量值$1,$2,再進(jìn)行二次處理能夠達(dá)到很巧妙的效果。
    2013-02-02
  • java獲取每月的最后一天實(shí)現(xiàn)方法

    java獲取每月的最后一天實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇java獲取每月的最后一天實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Mybatis 傳參與排序模糊查詢(xún)功能實(shí)現(xiàn)

    Mybatis 傳參與排序模糊查詢(xún)功能實(shí)現(xiàn)

    這篇文章主要介紹了Mybatis 傳參與排序模糊查詢(xún)功能實(shí)現(xiàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-04-04

最新評(píng)論

天全县| 凭祥市| 宜城市| 同江市| 赫章县| 汉阴县| 靖边县| 楚雄市| 马边| 腾冲县| 延川县| 渝北区| 驻马店市| 南阳市| 绍兴县| 天台县| 巨鹿县| 平顶山市| 麦盖提县| 花莲县| 定日县| 九龙县| 郓城县| 德昌县| 嘉兴市| 南康市| 成都市| 武威市| 长宁县| 镇巴县| 磐石市| 石台县| 旺苍县| 延吉市| 阿克陶县| 赫章县| 包头市| 礼泉县| 平原县| 沙坪坝区| 海晏县|