摘要:枚舉類型提供了提供了持久化的枚舉類型。假設(shè)表結(jié)構(gòu)的列,使用類型存儲或,對象使用枚舉類型標識當執(zhí)行語句時,或會存儲到列,如果想要存儲的時枚舉值而不是枚舉名字,就需要配置類型處理器和提供了對和的內(nèi)檢支持,將映射為,將映射為數(shù)組。
mybatis中靜態(tài)sql語句有時不足以滿足用戶的需求,因此其提供了動態(tài)sql標簽。
IF標簽if標簽通過條件測試,動態(tài)插入sql片段,例如:
and name like #{courseName}and start_date>=#{startDate} and end_start<=#{endDate} ]]>
保證之間的內(nèi)容作為一般的字符處理,不做特殊處理。
choose標簽choose標簽用于選擇第一個選擇條件,例如:where標簽
有時,所有的查詢條件可能都是可選的,但是其中至少有一個查詢是需要的,但是若有多個查詢條件都滿足條件,這時就需要在查詢條件添加and 或or。mybatis提供了where標簽用于支持建立這種類型的sql語句,當?shù)谝粋€滿足的條件前面有and 或 or 等連接詞時,會自動刪除連接詞。例子如下所示:trim標簽
trim標簽比where標簽更加靈活,因為它可以在條件前面加上連接詞或刪除連接詞 也可以在條件后面加上連接詞或刪除連接詞;舉例如下:foreach標簽
foreach元素的屬性主要有 item,index,collection,open,separator,close。 item表示集合中每一個元素進行迭代時的別名. index指 定一個名字,用于表示在迭代過程中,每次迭代到的位置. open表示該語句以什么開始. separator表示在每次進行迭代之間以什么符號作為分隔 符. close表示以什么結(jié)束. 舉例如下:set標簽
set標簽類似于where標簽,會在返回的條件前面插入set關(guān)鍵字,并移除最后一個條件的后面符號,舉例如下所示:枚舉類型update students 如果三個條件都是ture,phone后面的逗號將被移除。name=#{name}, email=#{email}, phone=#{phone},
mybatis提供了提供了持久化的枚舉類型。假設(shè) Student表結(jié)構(gòu)的gender列,使用varchar類型存儲MALE或FEMALE,Student對象使用枚舉類型標識gender. public enum Gender{ FEMALE,MALE } public class Student { .... private Gender gender; .... }CLOB和BLOBinsert into student (id,name,gender) values(#{id},#{name},#{gender}) 當執(zhí)行insert語句時,MALE或FEMALE會存儲到gender列,如果想要存儲的時枚舉值而不是枚舉名字,就需要配置類型處理器:
mybatis提供了對clob和blob的內(nèi)檢支持,將clob映射為java.lang.String,將blob映射為byte[]數(shù)組。因此用戶可以像原始類型那樣處理clob和blob類型。傳遞多個參數(shù)
mybatis提供了傳遞多個參數(shù)的內(nèi)建功能,并通過#{param}語法引用參數(shù)。舉例如下: List將多行數(shù)據(jù)存儲到map中,并以某個列值作為keyfindAllStudentByNameEmail(String name,String email);
要完成上述功能,需要使用sqlSession的selectMap方法; 舉例如下: MapstudentMap=sqlSession.selectMap("com.mybatis3.mappers.StudentMapper.findAllStudent","studId");
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/70214.html
摘要:執(zhí)行沒有,批處理不支持,將所有都添加到批處理中,等待統(tǒng)一執(zhí)行,它緩存了多個對象,每個對象都是完畢后,等待逐一執(zhí)行批處理。 Mybatis常見面試題 #{}和${}的區(qū)別是什么? #{}和${}的區(qū)別是什么? 在Mybatis中,有兩種占位符 #{}解析傳遞進來的參數(shù)數(shù)據(jù) ${}對傳遞進來的參數(shù)原樣拼接在SQL中 #{}是預編譯處理,${}是字符串替換。 使用#{}可以有效的防止...
摘要:最終能和面試官聊的開心愉快投緣的叫面霸。能夠與很好的集成提供映射標簽,支持對象與數(shù)據(jù)庫的字段關(guān)系映射提供對象關(guān)系映射標簽,支持對象關(guān)系組件維護。使用可以有效的防止注入,提高系統(tǒng)安全性。 showImg(https://segmentfault.com/img/bVbsSlt?w=358&h=269); 一、概述 面試,難還是不難?取決于面試者的底蘊(氣場+技能)、心態(tài)和認知及溝通技巧。...
摘要:在動態(tài)解析階段,和會有不同的表現(xiàn)解析為一個預編譯語句的參數(shù)標記符。其次,在預編譯之前已經(jīng)被變量替換了,這會存在注入問題。預編譯語句對象可以重復利用。默認情況下,將對所有的進行預編譯。總結(jié)本文主要深入探究了對和的不同處理方式,并了解了預編譯。 mybatis 中使用 sqlMap 進行 sql 查詢時,經(jīng)常需要動態(tài)傳遞參數(shù),例如我們需要根據(jù)用戶的姓名來篩選用戶時,sql 如下: sele...
摘要:什么是本是的一個開源項目年這個項目由遷移到了,并且改名為。如下的代碼,如果有多個條件的話,那么拼接起來很容易出錯查詢語句根據(jù)是否為來判斷是否是條件查詢。而如果我們使用的話,就可以免去查詢助手類了。 什么是MyBatis MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,...
摘要:原因就是傳入的和原有的單引號,正好組成了,而后面恒等于,所以等于對這個庫執(zhí)行了查所有的操作。類比的執(zhí)行流程和原有的我們使用的方法就是。可以理解為就是用來解析定制的符號的語句。后續(xù)的流程,就和正常的流程一致了。 前言 在JDBC中,主要使用的是兩種語句,一種是支持參數(shù)化和預編譯的PrepareStatement,能夠支持原生的Sql,也支持設(shè)置占位符的方式,參數(shù)化輸入的參數(shù),防止Sql注...
閱讀 3724·2021-11-24 10:23
閱讀 2771·2021-09-06 15:02
閱讀 1274·2021-08-23 09:43
閱讀 2351·2019-08-30 15:44
閱讀 3045·2019-08-30 13:18
閱讀 779·2019-08-23 16:56
閱讀 1743·2019-08-23 16:10
閱讀 536·2019-08-23 15:08