MyBatis學習筆記(3)---動態sql語句
通過mybatis提供的各種標籤方法實現動態拼接sql
1、if標籤
<!-- 根據條件查詢使用者 --> <select id="queryUserByWhere" parameterType="user" resultType="user"> SELECT id, username, birthday, sex, address FROM `user` WHERE 1=1 <if test="sex != null and sex != ''"> AND sex = #{sex} </if> <if test="username != null and username != ''"> AND username LIKE '%${username}%' </if> </select>
2、where標籤
<!-- 根據條件查詢使用者 --> <select id="queryUserByWhere" parameterType="user" resultType="user"> SELECT id, username, birthday, sex, address FROM `user` <!-- where標籤可以自動新增where,同時處理sql語句中第一個and關鍵字 --> <where> <if test="sex != null"> AND sex = #{sex} </if> <if test="username != null and username != ''"> AND username LIKE '%${username}%' </if> </where> </select>
3、sql片段標籤
<!-- 根據條件查詢使用者 --> <select id="queryUserByWhere" parameterType="user" resultType="user"> <!-- SELECT id, username, birthday, sex, address FROM `user` --> <!-- 使用include標籤載入sql片段;refid是sql片段id --> SELECT <include refid="userFields" /> FROM `user` <!-- where標籤可以自動新增where關鍵字,同時處理sql語句中第一個and關鍵字 --> <where> <if test="sex != null"> AND sex = #{sex} </if> <if test="username != null and username != ''"> AND username LIKE '%${username}%' </if> </where> </select> <!-- 宣告sql片段 --> <sql id="userFields"> id, username, birthday, sex, address </sql>
4、foreach標籤:向sql傳遞陣列或List,mybatis使用foreach解析
<!-- 根據ids查詢使用者 -->
<select id="queryUserByIds" parameterType="queryVo" resultType="user">
SELECT * FROM `user`
<where>
<!-- foreach標籤,進行遍歷 -->
<!-- collection:遍歷的集合,這裡是QueryVo的ids屬性 -->
<!-- item:遍歷的專案,可以隨便寫,,但是和後面的#{}裡面要一致 -->
<!-- open:在前面新增的sql片段 -->
<!-- close:在結尾處新增的sql片段 -->
<!-- separator:指定遍歷的元素之間使用的分隔符 -->
<foreach collection="ids" item="item" open="id IN (" close=")"
separator=",">
#{item}
</foreach>
</where>
</select>
相關推薦
MyBatis學習筆記(3)---動態sql語句
通過mybatis提供的各種標籤方法實現動態拼接sql 1、if標籤 <!-- 根據條件查詢使用者 --> <select id="queryUserByWhere" param
mybatis學習筆記(七)- 動態 SQL
工程目錄 1. 環境配置 1.1 建立 EmployeeMapperDynamicSQL 介面 1.2 建立 EmployeeMapperDynamicSQL.xml 檔案 2. 重要標籤的使用 2.1 在 EmployeeMapperDynamicSQL 中
Mybatis學習筆記(六)--動態sql拼接
介紹 通過mybatis提供的各種標籤方法實現動態拼接sql Mybatis動態sql---<sql>與<include> <!-- 使用include標籤載入sql片段;refid是sql片段id --> <sql id="select"&
Python學習筆記(3)動態型別
is運算子 ==是值相等而is必須是相同的引用才可以 l=[1,2,3] m=[1,2,3] print(l==m) # True print(l is m) # False sys模組 getrefcount() 查詢物件存在的引用次數 import sys print(sys.getrefco
Mybatis學習筆記(3)之高階功能
高階功能 對映關係 一對一對映 SQL語句:使用者訂單查詢 SELECT orders.*, USER.username, USER.sex, USER.address FROM orders, USER WHERE orders.user_id = u
myBatis學習筆記(3)——實體屬性名與表字段名不匹配問題
問題 <select id="getUser" parameterType="String" resultType="User"> select
MyBatis 筆記(五)——動態 SQL
在開發中,經常會遇到要執行的 SQL 語句其實並不是固定,而是隨條件的變化而變化的。對於這種情況 MyBatis 也有解決方案。 隨條件變化的 SQL 先看一個固定的 SQL 語句,查詢指定 name 和 age 的人: <resultMap
Mybatis學習筆記(五)--mapper動態代理
Mapper介紹 Mapper介面開發方法只需要程式設計師編寫Mapper介面(相當於Dao介面),由Mybatis框架根據介面定義建立介面的動態代理物件,代理物件的方法體同上邊Dao介面實現類方法。 Mapper介面開發需要遵循以下規範: Mapper.xm
TCP/IP詳解學習筆記(3)IP協議ARP協議和RARP協議
out 處理機 傳輸 包含 發送 res 這也 進行 默認 把這三個協議放到一起學習是因為這三個協議處於同一層,ARP協議用來找到目標主機的Ethernet網卡Mac地址,IP則承載要發送的消息。數據鏈路層可以從ARP得到數據的傳送信息,而從IP得到要傳輸的數據信息。
myBatis學習筆記(10)——使用攔截器實現分頁查詢
條件 iba execute rri itl alias property gen func 1. Page package com.sm.model; import java.util.List; public class Page<T&g
spring學習筆記(3)——bean配置細節註意
collect 1.5 之前 ice ble person name return 引用 1. 一個bean引用另外一個bean 當Person類中有一個屬性是Car,那麽該如何配置呢 person: package com.zj.spring; public class
QT學習筆記(3) 我的第一個程序
9.png har 中文 gets 有一個 setw 通過 坐標 關系 今天,學習搭建一個空項目,了解程序是如何運行的。 (1)新建一個空項目 1、在創建完空項目之後,項目中只有一個空的項目文件( .pro) 2、然後需要在項目文件(.pro)中添加:
Hibernate學習筆記(3)---hibernate關聯關系映射
gen -m type foreign out eas ner 機制 路徑 一對一關聯 假設有兩個持久化類(實體類)User與Address,它們之間存在一對一的關系 1,通過主鍵關聯(個人偏向另外一種) User.hbm.xml文件配置 <id name="u
C++深度解析教程學習筆記(3)函數的擴展
插入 分享 技術 lsp 預處理器 _for 返回 忽略 結合 1.內聯函數 1.1.常量與宏的回顧 (1)C++中的 const 常量可以替代宏常數定義,如: const int A = 3; //等價於 #define A 3 (2)C++中是否有解決方案,可以用來
shell學習筆記(3)
shell 基礎 雜記if 一、if基礎 1、單分支 1.1 語法 if語句語法 單分支結構語法: if [條件]; then 指令 fi 或 if [條件] then 指令 fi 1.2 例子 [roo
Python學習筆記(3)
python重要的數據類型Dict和Setdict通過key 查找value(key和value關聯)花括號{ }表示這是一個dict,然後按照key:value,寫出來即可。最後一個key:value的都好可以省略 註意: 單元素的tuple必須在後面多家加一個逗號dict最後的逗號可以省略由於dict也是
JavaEE--Mybatis學習筆記(一)
一個數 border none 取出 bean 需要 table add 基金 一、簡介: MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,並且改名為M
JavaEE--Mybatis學習筆記(四)--單表的CURD 補充
動態代理 doctype bubuko 使用 rop 單表 one lse name 1.屬性名和字段名不一致 使用別名 <select id="selectAllStudents" resultType="Student"><!-- 需要
JavaEE--Mybatis學習筆記(六)--查詢緩存
原則 主配置文件 enabled app 目錄 session共享 證明 bsp 更新 查詢緩存 查詢緩存的使用,主要是為了提高查詢訪問速度。將用戶對同一數據的重復查詢過程簡化,不再每次均從數據庫查詢獲取結果數據,從而提高訪問速度。 左為執行原理示意圖 右為執
莫煩大大TensorFlow學習筆記(3)----建立神經網絡
nbsp 定義數據 學習筆記 variables ati 選擇 mea 有變 plus 1、def add_layer() 添加神經網絡層: import tensorflow as tf def add_layer( inputs, in_size, out_si