(八)Mybatis當中#{}常用屬性的用法
這篇文章主要講述Mybatis當中#{}常用屬性的用法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
#{}佔位符的屬性
這是他的一些屬性,當然本篇文章重點講解在開發當中我們會用到的一些屬性。
javaType、 jdbcType、 mode(儲存過程)、 numericScale、
resultMap、 typeHandler、 jdbcTypeName、 expression(未來準備支援的功能);
用法#{age ,jdbcType=TINYINT ,javaType=short}
javaType
通常可以從引數物件中來去確定,這個屬性一般很少使用。
如果用的eclipse可以全域性搜ctrl+shift+t 搜尋JdbcType
這個就是xml當中傳值型別對映關係,也就是java當中的型別和jdbc的屬性關係。
jdbcType
如果用的orcle資料庫假如資料傳值為Null的時候就會報錯,這個時候可以通過設定這個來進行避免報錯。
程式碼示例:
這是一個新增返回主鍵的Orcle示例
<insert id="addEmp" databaseId="oracle">
<selectKey keyProperty="id" order="BEFORE" resultType="Integer">
select EMPLOYEES_SEQ.nextval from dual
</selectKey>
insert into employees(ID,LAST_NAME,EMAIL)
values(#{id},#{lastName},#{email})
</insert>
假如last或者email傳值為null就會報錯,報無效的列型別
原因:
當傳值為Null的時候,mybatis會自動對應jdbcType類當中的other型別,而oracle並不認識這個型別,mysql他不會報錯的。
解決方案:
當指定型別之後,他就不會去預設other型別了,這樣就可以解決傳null值報錯問題
insert into employees(ID,LAST_NAME,EMAIL)
values(#{id},#{lastName,jdbcType=NULL},#{email,jdbcType=NULL})
針對於上面的我們還得遇見null就得加那個屬性,Mybatis也給我們提供了一種全域性設定,在mybatis-config.xml新增以下配置。
<settings>
<setting name="jdbcTypeForNull" value="NULL"/>
</settings>
mode呼叫儲存過程
mode 屬性允許指定 IN,OUT 或 INOUT 引數
順便記錄一下oracle儲存過程建立吧。
儲存過程書寫要規範(IN 、OUT 引數一定要寫上,例如:V_YEAR IN INTEGER),不然JAVA呼叫有問題,拿不到儲存過程返回值
CREATE OR REPLACE PROCEDURE STATIC_DIA_QUARTER(V_YEAR IN INTEGER,
V_QUARTER IN INTEGER) IS
<select id="getAndSaveHyperReport" statementType="CALLABLE" parameterType="java.util.Map" >
{call STATIC_HYPER_QUARTER(#{year,mode=IN,jdbcType=INTEGER},#{quarter,mode=IN,jdbcType=INTEGER})}
</select>
numericScale保留小數點幾位
#{height,jdbcType=NUMERIC,numericScale=2})
相關文章
- html中Position屬性值介紹和position屬性四種用法HTML
- vue中vuex的五個基本屬性和用法Vue
- CSS zoom屬性用法CSSOOM
- js的屬性物件的specified屬性用法簡單介紹JS物件
- UISearchBar常用屬性UI
- css常用屬性CSS
- WinForm常用屬性ORM
- .net常用屬性
- background常用屬性
- js的returnValue屬性用法介紹JS
- React屬性用法總結React
- javascript textContent屬性用法JavaScript
- background屬性用法詳解
- UITableView 屬性用法詳解UIView
- 字串的常用屬性和方法字串
- WebElement的常用屬性和方法Web
- css常用文字屬性CSS
- Active Directory 常用屬性
- CSS 常用文字屬性CSS
- 物件導向中Object常用屬性總結物件Object
- Android屬性動畫詳解(一),屬性動畫基本用法Android動畫
- clientWidth和clientHeight屬性的用法client
- 談談ThreadStatic屬性用法thread
- css transition屬性用法介紹CSS
- javascript callee和caller屬性用法JavaScript
- pageYOffset與pageXOffset屬性用法
- css border-color屬性用法CSS
- list-style-image屬性用法
- easyui tree自定義屬性用法UI
- CSS的常用屬性速查表CSS
- 數值常用的屬性和方法
- HTML 常用的標籤和屬性HTML
- 一些常用的模型屬性模型
- CSS中常用的屬性設定CSS
- 常用的HTML標籤和屬性HTML
- 常用的瀏覽器私有屬性瀏覽器
- MyBatis從入門到精通(八):MyBatis動態Sql之foreach標籤的用法MyBatisSQL
- CSS3常用屬性CSSS3