java SSM第三章學習內容(動態SQL語句)
一. if判斷語句
用法:可以在SQL語句下加if標籤用於判斷
xml
<!-- if判斷 -->
<select id="selectif" resultMap="BillProviderResult">
SELECT sb.id,sb.billCode,sb.productName,sp.id,sp.proName,sb.totalPrice,sb.isPayment,sb.creationDate
FROM smbms_bill sb,smbms_provider sp WHERE sb.id=sp.id
<if test="id!=null and id !=0">
and sb.id=#{id}
</if>
<if test="isPayment=1 and isPayment=2">
and sb.isPayment=#{isPayment}
</if>
<if test="productName!=null and productName!=''">
and sb.productName Like CONCAT(#{productName},'%')
</if>
</select>
介面
//if查詢
List<Bill> selectif(@Param("id")int id,@Param("isPayment")int isPayment,@Param("productName")String productName);
二. if - where
用法:可以在SQL語句下加<where>標籤用於新增條件,在裡面巢狀if進行判斷
xml
<!-- if where -->
<select id="selectifwhere" resultMap="ProviderBillResult">
SELECT id,proCode,proName,proContact,proPhone,proAddress,creationDate FROM
smbms_provider
<where>
<if test="proCode!=null and proCode!=''">
and proCode Like CONCAT(#{proCode},'%')
</if>
<if test="proName!=null and proName!=''">
and proName Like CONCAT(#{proName},'%')
</if>
</where>
</select>
介面
//if where
List<Provider> selectifwhere(@Param("proCode")String proCode,@Param("proName")String proName);
三. if set
用法:可以在SQL修改語句下加<if>標籤用於新增條件判斷
xml:
<!-- if+set -->
<update id="updateifset" parameterType="com.entity.Provider">
UPDATE smbms_provider
<set>
<if test="proName!=null and proName!=''">
proName =#{proName}
</if>
</set>
WHERE id=#{id}
</update>
介面:
//if set
int updateifset(Provider provider);
四. trim
用法:用於查詢或則修改語句,<trim prefix="set">可以設定引數
xml
更改:
<!-- trim -->
<update id="updatetrim" parameterType="com.entity.Provider">
UPDATE smbms_provider
<trim prefix="set">
<if test="proName!=null and proName!=''">
proName =#{proName}
查詢:
<!-- if trim -->
<select id="selectIfTrim" resultType="com.entity.Role" parameterType="String">
SELECT * FROM smbms_role
<trim prefix="where" >
<if test="roleName!=null and roleName!=''">
roleName LIKE CONCAT ('%',#{roleName})
</if>
</trim>
LIMIT 0,2
</if>
</trim>
WHERE id=#{id}
</update>
介面
//trim
int updatetrim(Provider provider);
五. forEach
用於:SELECT * FROM smbms_provider WHERE id IN 語句
<!-- forEach 陣列-->
<select id="selectForEach" resultMap="ProviderBillResult">
SELECT * FROM smbms_provider WHERE id IN
<foreach collection="array" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!-- forEach list集合-->
<select id="selectForEach2" resultMap="ProviderBillResult">
SELECT * FROM smbms_provider WHERE id IN
<foreach collection="list" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!-- forEach Map入參-->
<select id="selectForEach3" resultMap="ProviderBillResult">
SELECT * FROM smbms_provider WHERE id IN
<foreach collection="Map" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
//forEach 陣列
List<Provider> selectForEach(String[] id);
//forEach 集合
List<Provider> selectForEach2(List<String> list);
//forEach Map
List<Provider> selectForEach3(Map<String,Object> map);
六. Choose 分支
<!-- Choose 分支-->
<select id="selectChoose" resultMap="ProviderBillResult">
SELECT id,proCode,proName,proContact,creationDate FROM smbms_provider WHERE 1=1
<choose>
<when test="proCode!=null and proCode!=''">
and proCode Like CONCAT('%',#{proCode},'%')
</when>
<when test="proName!=null and proName!=''">
and proName Like CONCAT('%',#{proCode},'%')
</when>
<when test="proContact!=null andproContact!=''">
and proContact Like CONCAT('%',#{proContact},'%')
</when>
<otherwise>
creationDate>'2014-00-00'
</otherwise>
</choose>
//Choose
List<Provider> selectChoose(@Param("proCode")String proCode,@Param("proName")String proName,
@Param("proContact")String proContact,@Param("creationDate")Date creationDate);
七. 分頁
<!-- 分頁 -->
<select id="selectLimit" resultMap="ProviderBillResult">
SELECT * FROM smbms_provider ORDER BY creationDate DESC LIMIT #{page1},#{page2}
</select>
//limit分頁
List<Provider> selectLimit(@Param("page1")int page1,@Param("page2")int page2);
相關推薦
java SSM第三章學習內容(動態SQL語句)
一. if判斷語句 用法:可以在SQL語句下加if標籤用於判斷 xml <!-- if判斷 --> <select id="selectif" resultMap="BillProviderResult"> SELECT
java SSM第三章學習內容(oracle儲存過程)
儲存過程 edit進入文字編輯器中 /指定語句 DBMS_OUTPUT.PUT_LINE('操作完畢'||a);輸出一段話 commit;提交 set serverout on 列印一段話之前要先設定基本型別 declare //設定變數,直接賦值可以:=9
第三章 寄存器(內存訪問)相關內容總結
管理 讀寫 理解 元組 實驗 記錄 需要 默認 內部 在本章中,我們從訪問內存的角度繼續學習了幾個寄存器。我們提出字單元的概念:字單元,即存放一個字型數據(16位)的內存單元,由兩個地址連續的內存單元組成。高地址內存單元中存放字型數據的高位字節,低地址內存單元中
第三章 控件(6~7課)
pan 獨立 兩種 color 代碼 父窗口 及其 所有 外觀 第6課:創建和使用控件 第7課:常用控件 概述: 在MFC中,控件是具有獨立功能的人機交互的小窗口,它們除了可以使用自身成員外,還可使用其基類CWnd類的公有成員,因為幾乎所有的控件類都是從CWnd類派生而
第三章 寄存器(內存訪問)
push 來安 直接 分享圖片 info cpu 防止 修改 mov指令 一、一個字=兩個字節。地位字節存放在低地址單位中,高位字節存放在高地址單元中,取低地址內存單元作為字數據地址。(小端法) 引入概念:字單元:存放一個字型數據的內存單元,由兩個地址連
MySQL中根據if標籤實現多條件模糊查詢(動態SQL語句)
if標籤 if標籤可用在許多型別的sql語句中,我們以查詢為例。首先看一個很普通的查詢: Xml程式碼 <!-- 查詢學生list,like姓名 --> <select id="getStudentListLikeName" pa
JAVA 程式設計題解與上機指導(第四版)第三章表達式和流程控制語句 題3.9
/**3.9編寫列印乘法口訣表*/ public class MultipleTable { public static void main(String args[]) {MultipleTable multiple=new MultipleTable(); int n=
《機器學習》 周志華學習筆記第三章 線性模型(課後習題)python 實現
線性模型 一、內容 1.基本形式 2.線性迴歸:均方誤差是迴歸任務中最常用的效能度量 3.對數機率迴歸:對數機率函式(logistic function)對率函式是任意階可導的凸函式,這是非常重要的性質。 4.線性判別分析(LDA 是一種降維的方法) 5.多分類學習:
201711671106《Java程式設計》第三章學習總結
教材學習內容總結 學習了第三章運算子,表示式和基本的java語句 運算子與表示式 一、算數運算子: 二目運算子:+ - * / % 單目運算子:++ --
201711671135 《Java程式設計》第三章學習總結
本章主要學習了運算子,感覺Java中大部分運算子和C語言相同,基本語句如條件分支語句、迴圈語句等也和C語言類似。 1.算術運算子:①加減運算子(+,-),二目運算子(連線兩個操作元的運算子)。加減的結合方向是從左到右。是整型或者浮點型資料,優先順序4級。 &n
java SSH第一章學習內容(Struts2攔截器,攔截器堆疊)
Struts2攔截器,需要導相應的jar包及複製Struts.xml檔案到src目錄下,web.xml進行修改 攔截器 在訪問Action的時候進行攔截處理,需要繼承AbstractInterceptor,重寫intercept方法案例一:在訪問Action輸出一句話(買電腦
java基礎第三章
als int 基本 多重if != 邏輯 ignorecas ignore 邏輯與 一、基本if結構 1、流程圖 輸入輸出 判斷和分支 流程線
201671010138 2016-2017java第三章學習心得
心得 執行 fff 解決 實例 -- 子類 sta contain 第三章是java真正的一個開端,我們開始正式的接觸它的語法結構、變量類型、輸入輸出及運算等。 也初步接觸了string類,認識了它的API及構造,與其類同
《深入理解計算機系統》第三章學習筆記
並發 錯誤 ia32 庫函數 容易 簡單 linux 嚴重 格式 通過本周的學習,總結出一下知識內容 機器級代碼 計算機系統使用了多種不同形式的抽象,利用更簡單的抽象模型來隱藏實現的細節。 對於機器級編程來說,其中兩種抽象尤為重要: 1、指令集體系結構(Instructio
Linux第三周學習筆記(1)
命令 hiho 並且 ron 增加 如果 mkdir strong lin Linux第三周學習筆記(1)2.20 特殊權限stick_bit特殊權限stick_bit:意為防刪除位。文件是否可以被某一個用戶刪除,主要取決於該文件所在目錄是否對該用戶具有寫的權限。如果沒有寫
《構建之法》第三章學習筆記
log 設計思想 水平 行業 如何 階段 檢測 應該 blog 《構建之法》第三章 軟件工程師的成長 個人能力的衡量與發展 軟件團隊和團隊中的工程師也是這樣。軟件系統的絕大部分模塊都是由個人開發或維護的。在軟件工程的術語中,我們把這些單個的成員叫做Individ-ual C
20165233 Java第二、三章學習總結
符號 int() 編譯運行 while 常量 java color ima 進行 2017-2018-2 《Java程序設計》第二周學習總結 教材學習內容總結 第二、三章 ch2 標識符與關鍵字 基本數據類型: 邏輯類型:boolean 整數類型:int、byte、sho
Python第三周 學習筆記(2)
學習筆記選擇排序: 時間復雜度O(n**2) 沒有辦法知道當前輪是否已經達到排序要求,但是可以知道極值是否在目標索引位置上 遍歷次數1,...,n-1之和n(n-1)/2 對比冒泡法:減少了交換次數,提高了效率,性能略好 方法三、四實際上降低的是平均時間復雜度 方法一: nums = [1, 2, 6,
Python第三周 學習筆記(1)
學習筆記;內建函數;字典;列表解析式字典 key-value鍵值對的數據的集合 可變的、無序的、key不重復 初始化: d = dict() d = {} d = dict(**kwargs) 如:d = dict(a=1,b=2) dict(iterable, **kwarg) 使用可叠代對象和na
《Spring Security3》第四章第三部分翻譯下(密碼加salt)
文件 auth ans 大小 ack 工程師 新的 bool get 你是否願意在密碼上添加點salt? 如果安全審計人員檢查數據庫中編碼過的密碼,在網站安全方面,他可能還會找到一些令其感到擔心的地方。讓我們查看一下存儲的admin和guest用戶的用戶名和密碼值