MyBatis(四):拓展——Map的使用和模糊查詢

来源:https://www.cnblogs.com/jmsstudy/archive/2022/09/08/16668639.html
-Advertisement-
Play Games

一、Map的使用 前面我們在Mapper介面的方法中,傳入的參數都是一個基本類型或者是一個實體類,那麼如果我們需要的參數不止一個但又用不到實體類所有的屬性有沒有什麼更好的辦法呢,這裡我們就可以用到Map了。 我們還是以具體的操作來進行理解。 1.利用Map實現查詢 (1)修改UserMapper介面 ...


一、Map的使用

前面我們在Mapper介面的方法中,傳入的參數都是一個基本類型或者是一個實體類,那麼如果我們需要的參數不止一個但又用不到實體類所有的屬性有沒有什麼更好的辦法呢,這裡我們就可以用到Map了。

我們還是以具體的操作來進行理解。

1.利用Map實現查詢

(1)修改UserMapper介面

 1 package com.jms.dao;
 2 
 3 import java.util.List;
 4 import java.util.Map;
 5 
 6 import com.jms.pojo.User;
 7 
 8 public interface UserMapper {
 9     //利用Map獲取User信息
10     User getUserbymap(Map<String, Object> map);
11 }

(2)修改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">
<!-- 命名空間namespace對應Mapper介面 -->
<mapper namespace="com.jms.dao.UserMapper">
  <!-- id對應介面中的方法 -->
  <select id="getUserbymap" parameterType="Map" resultType="com.jms.pojo.User">
      select * from user where id=#{mapid} and username=#{mapname}
  </select>
</mapper>

(3)junit測試

 1 @Test
 2     public void Select2() {
 3         //利用工具類獲取SqlSession
 4         SqlSession sqlSession = MyBatisUtil.getSqlSession();
 5         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
 6         Map<String, Object> map = new HashMap<String, Object>();
 7         map.put("mapid", 10000);
 8         map.put("mapname", "jms1");
 9         User user = userMapper.getUserbymap(map);
10         System.out.println(user);
11         sqlSession.close();
12     }

這裡查詢的是id為10000,username為jms1的用戶信息。

測試結果:

 2.總結

至今為止,我們已經有了三種進行參數傳遞的方式:

1.傳遞一個基本類型。

2.傳遞一個實體類。

3.傳遞一個Map。

 

二、模糊查詢

模糊查詢有兩種方法:

1.java代碼中傳遞通配符“%%”

(1)修改UserMapper介面

 1 package com.jms.dao;
 2 
 3 import java.util.List;
 4 import java.util.Map;
 5 
 6 import com.jms.pojo.User;
 7 
 8 public interface UserMapper {
 9     //模糊查詢獲取User信息
10     List<User> getUsersLike(String value);
11 }

(2)修改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">
<!-- 命名空間namespace對應Mapper介面 -->
<mapper namespace="com.jms.dao.UserMapper">
  <!-- id對應介面中的方法 -->
  <select id="getUsersLike" parameterType="String" resultType="com.jms.pojo.User">
      select * from user where username like #{value}
  </select>
</mapper>

(3)junit測試

 1 @Test
 2     public void SelectLike() {
 3         //利用工具類獲取SqlSession
 4         SqlSession sqlSession = MyBatisUtil.getSqlSession();
 5         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
 6         List<User> users = userMapper.getUsersLike("%jms%");
 7         for(User user: users) {
 8             System.out.println(user);
 9         }
10         sqlSession.close();
11     }

測試結果:

2.在SQL語句中拼接通配符“%%”

(1)修改UserMapper介面

與上同。

(2)修改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">
<!-- 命名空間namespace對應Mapper介面 -->
<mapper namespace="com.jms.dao.UserMapper">
  <!-- id對應介面中的方法 -->
  <select id="getUsers" resultType="com.jms.pojo.User">
  <select id="getUsersLike" parameterType="String" resultType="com.jms.pojo.User">
      select * from user where username like "%"#{value}"%"
  </select>
</mapper>

(3)junit測試

 1 @Test
 2     public void SelectLike() {
 3         //利用工具類獲取SqlSession
 4         SqlSession sqlSession = MyBatisUtil.getSqlSession();
 5         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
 6         List<User> users = userMapper.getUsersLike("jms");
 7         for(User user: users) {
 8             System.out.println(user);
 9         }
10         sqlSession.close();
11     }

測試結果:

 

 

 

(本文僅作個人學習記錄用,如有紕漏敬請指正)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 😋 大家早好、午好、晚好吖~ 知識點: 爬蟲基本流程 requests 發送請求 re 正則表達式 json 結構化數據解析 開發環境: python 3.8: 解釋器 pycharm: 代碼編輯器 requests 發送請求 pyecharts 繪製圖表 pandas 讀取數據 實現代碼: ...
  • 本文介紹 docker 環境下安裝並單機運行 Nacos2,使用 docker 環境下的 MySQL 8 存儲數據。 1 拉取鏡像 1.1 創建目錄 在硬碟上創建 nacos 的有關目錄: mkdir -p /Users/yygnb/dockerMe/nacos/conf /Users/yygnb/ ...
  • 摘要:圖像銳化和邊緣提取技術可以消除圖像中的雜訊,提取圖像信息中用來表徵圖像的一些變數,為圖像識別提供基礎。 本文分享自華為雲社區《[Python圖像處理] 十七.圖像銳化與邊緣檢測之Roberts運算元、Prewitt運算元、Sobel運算元和Laplacian算》,作者: eastmount 。 由於 ...
  • 本專欄的上一篇文章寫了《長篇圖解etcd核心應用場景及編碼實戰》,本文繼續。後續計劃章節內容如下: 《長篇圖解etcd核心應用場景及編碼實戰》 《搭建高可用etcd集群》 《基於etcd實現分散式鎖(java代碼實現)》 《基於etcd實現配置變更通知(java代碼實現)》 《基於etcd實現服務註 ...
  • Spring框架筆記 IOC容器(控制反轉) 什麼是 IOC ​ 控制反轉,把對象創建和對象之間的調用過程,交給Spring進行管理。 使用IOC目的: ​ 降低耦合度 ​ 通過控制反轉,對象在被創建的時候,由一個調控系統內所有對象的外界實體將其所依賴的對象引用傳遞給他。也可以說依賴被註入到對象中。 ...
  • 5. 數據查詢 欲看此文,必看如下兩篇文章: Druid支持JSON-over-HTTP和SQL兩種查詢方式。除了標準的SQL操作外,Druid還支持大量的唯一性操作,利用Druid提供的演算法套件可以快速的進行計數,排名和分位數計算。 5.1 準備工作 5.1.1 導入大量數據 準備大量數據提供查詢 ...
  • 以.uos為尾碼的文件,表示Uniform Office Spreadsheet文件,是一種國產的辦公文件格式,該格式以統一辦公格式(UOF)創建,使用XML和壓縮保存電子錶格。既有的Excel表格文件,可以通過格式轉換的方式轉換為UOS格式,本文將對此作相關介紹。 【導入jar包】 使用jar包: ...
  • 我國目前並未出台專門針對網路爬蟲技術的法律規範,但在司法實踐中,相關判決已屢見不鮮,K 哥特設了“K哥爬蟲普法”專欄,本欄目通過對真實案例的分析,旨在提高廣大爬蟲工程師的法律意識,知曉如何合法合規利用爬蟲技術,警鐘長鳴,做一個守法、護法、有原則的技術人員。 案情介紹 2017年以來,被告人王世傑工作 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...