亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java中Mybatis-Plus使用方式介紹

 更新時間:2023年06月01日 11:31:28   作者:顏淡慕瀟  
Mybatis-Plus提供了多種方式來執(zhí)行SQL,包括使用注解、XML映射文件和?Lambda表達式等,其中,使用Lambda表達式是Mybatis-Plus推薦的方式,因為它更加直觀和類型安全,,需要的朋友可以參考下

1 Mybatis-Plus簡介

Mybatis-Plus 提供了多種方式來執(zhí)行 SQL,包括使用注解、XML 映射文件和 Lambda 表達式等。其中,使用 Lambda 表達式是 Mybatis-Plus 推薦的方式,因為它更加直觀和類型安全。

2 使用方法

1  Lambda 表達式執(zhí)行 SQL

以下是一個使用 Lambda 表達式執(zhí)行 SQL 的示例,現(xiàn)在我們有一個名為 User 的實體類,其中包含 id、name 和 age 屬性:

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    @Override
    public List<User> getUsersByName(String name) {
        LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(User::getName, name);
        return baseMapper.selectList(queryWrapper);
    }
}

在這個示例中,我創(chuàng)建了一個 LambdaQueryWrapper 對象,使用 eq 方法指定查詢條件為 name = #{name},其中 #{name} 是參數(shù)占位符。

然后,調(diào)用 baseMapper.selectList 方法執(zhí)行查詢,并返回查詢結(jié)果。

2 組合示例 

要傳遞參數(shù),可以將參數(shù)作為方法的參數(shù),并在查詢條件中使用 eqne、inlike 等方法指定參數(shù)值。

例如,假設(shè)要查詢年齡大于等于 minAge,小于等于 maxAge 的用戶,可以修改上面的示例代碼如下:

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    @Override
    public List<User> getUsersByAge(int minAge, int maxAge) {
        LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.ge(User::getAge, minAge).le(User::getAge, maxAge);
        return baseMapper.selectList(queryWrapper);
    }
}

在這個示例中,我添加了一個新的方法 getUsersByAge,其中兩個參數(shù) minAge 和 maxAge 分別表示最小年齡和最大年齡。

使用 ge 方法指定年齡大于等于 minAge,使用 le 方法指定年齡小于等于 maxAge。

然后,調(diào)用 baseMapper.selectList 方法執(zhí)行查詢,并返回查詢結(jié)果。

3 復(fù)雜sql 

另外,如果需要執(zhí)行復(fù)雜的 SQL,例如聯(lián)合查詢、分組查詢等,可以使用 Mybatis-Plus 提供的 SQL 構(gòu)建器,它可以幫助你構(gòu)建復(fù)雜的 SQL 語句。

以下是一個使用 SQL 構(gòu)建器執(zhí)行聯(lián)合查詢的示例,假設(shè)你有一個名為 Order 的實體類,其中包含 id、userId 和 amount 屬性,你需要查詢每個用戶的訂單總金額:

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
    @Override
    public List<Map<String, Object>> getOrderAmountByUser() {
        QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("user_id", "sum(amount) as total_amount")
                    .groupBy("user_id");
        return baseMapper.selectMaps(queryWrapper);
    }
}

在這個示例中,我創(chuàng)建了一個 QueryWrapper 對象,使用 select 方法指定要查詢的字段為 user_id 和 sum(amount) as total_amount,其中 sum(amount) 表示每個用戶的訂單總金額,as total_amount 是為結(jié)果集中的這個字段取別名。

然后,使用 groupBy 方法將結(jié)果按照 user_id 進行分組。

最后,調(diào)用 baseMapper.selectMaps 方法執(zhí)行查詢,并返回查詢結(jié)果。

注意,在使用 SQL 構(gòu)建器執(zhí)行復(fù)雜的 SQL 語句時,需要使用正確的 SQL 語法,并且需要特別注意 SQL 注入的問題。

可以使用 Mybatis-Plus 提供的參數(shù)綁定方式來避免 SQL 注入問題,例如 #{param}${param} 等方式。

3 其他注入sql的方式

Mybatis-Plus 提供了多種注入 SQL 的方式,包括使用注解、XML 映射文件和 Lambda 表達式等。

不同的注入方式適用于不同的場景和需求,可以根據(jù)具體情況選擇適合的方式。

以下是幾種常用的注入 SQL 的方式:

1 使用注解

可以使用 @Select、@Update@Delete、@Insert 注解來注入 SQL 語句。例如:

@Select("SELECT * FROM user WHERE name = #{name}")
List<User> selectByName(@Param("name") String name);

在這個示例中,使用 @Select 注解注入了一條查詢語句,其中 #{name} 表示參數(shù)占位符,@Param("name") 表示參數(shù)名稱。

使用這種方式注入 SQL 語句比較簡單,但是不夠靈活,不支持復(fù)雜的 SQL 語句。

2 使用 XML 映射文件

可以使用 XML 映射文件來注入 SQL 語句,這種方式可以支持復(fù)雜的 SQL 語句,并且可以將 SQL 和 Java 代碼分離。

例如:在 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="selectByName" resultType="User">
        SELECT * FROM user WHERE name = #{name}
    </select>
</mapper>

在 UserMapper.java 文件中:

List<User> selectByName(@Param("name") String name);

在這個示例中,將查詢語句寫在 XML 映射文件中,使用 <select> 標(biāo)簽指定 SQL 語句,并使用 resultType 屬性指定返回結(jié)果類型。然后,在 Java 代碼中調(diào)用該方法即可。

以上就是Java之Mybatis-Plus使用方式介紹的詳細(xì)內(nèi)容,更多關(guān)于Java Mybatis-Plus使用方式的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于Java語言MD5加密Base64轉(zhuǎn)換方法

    基于Java語言MD5加密Base64轉(zhuǎn)換方法

    這篇文章主要為大家詳細(xì)介紹了基于Java語言的MD5加密Base64轉(zhuǎn)換方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • java開發(fā)中基于JDBC連接數(shù)據(jù)庫實例總結(jié)

    java開發(fā)中基于JDBC連接數(shù)據(jù)庫實例總結(jié)

    這篇文章主要介紹了java開發(fā)中基于JDBC連接數(shù)據(jù)庫的方法,以實例形式較為詳細(xì)的總結(jié)分析了Java使用JDBC的具體步驟與注意事項,并附帶了一個完整實例加以說明,需要的朋友可以參考下
    2015-11-11
  • 解決@PathVariable出現(xiàn)點號.時導(dǎo)致路徑參數(shù)截斷獲取不全的問題

    解決@PathVariable出現(xiàn)點號.時導(dǎo)致路徑參數(shù)截斷獲取不全的問題

    這篇文章主要介紹了解決@PathVariable出現(xiàn)點號.時導(dǎo)致路徑參數(shù)截斷獲取不全的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • JavaWeb簡單用戶登錄注冊實例代碼(有驗證碼)

    JavaWeb簡單用戶登錄注冊實例代碼(有驗證碼)

    這篇文章主要介紹了JavaWeb簡單用戶登錄注冊實例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 淺談Java并發(fā)之同步器設(shè)計

    淺談Java并發(fā)之同步器設(shè)計

    這篇文章主要介紹Java并發(fā)之同步器設(shè)計,本文以記錄方式并發(fā)編程中同步器設(shè)計的一些共性特征。并簡單介紹了Java中的AQS,需要的朋友可以參考一下文章的詳細(xì)內(nèi)容
    2021-10-10
  • Java實現(xiàn)在線五子棋對戰(zhàn)游戲(人機對戰(zhàn))

    Java實現(xiàn)在線五子棋對戰(zhàn)游戲(人機對戰(zhàn))

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實現(xiàn)在線五子棋對戰(zhàn)游戲(人機對戰(zhàn)),文中的實現(xiàn)步驟講解詳細(xì),感興趣的可以嘗試一下
    2022-09-09
  • Springboot2.X集成redis集群(Lettuce)連接的方法

    Springboot2.X集成redis集群(Lettuce)連接的方法

    這篇文章主要介紹了Springboot2.X集成redis集群(Lettuce)連接的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • IntelliJ IDEA使用SVN分支的簡單介紹

    IntelliJ IDEA使用SVN分支的簡單介紹

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA使用SVN分支的簡單介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Java Swing SpringLayout彈性布局的實現(xiàn)代碼

    Java Swing SpringLayout彈性布局的實現(xiàn)代碼

    這篇文章主要介紹了Java Swing SpringLayout彈性布局的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Java項目啟動成功、失敗信息實時反饋提醒問題(郵件或者短信)

    Java項目啟動成功、失敗信息實時反饋提醒問題(郵件或者短信)

    這篇文章主要介紹了Java項目啟動成功、失敗信息實時反饋提醒問題(郵件或者短信),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評論