用ibatis.net简单的数据更新
ibatis.net也用了快一個月了,可還不是很熟練。以前都是用他來search,get數(shù)據(jù),從沒用過updata,今天終于要修改數(shù)據(jù)了,才發(fā)現(xiàn)原來根本不能依靠自己立馬做出來。學(xué)習了別人的東西以后自己也摸索出來了方法,其實并不難,關(guān)鍵在于對整個ibatis的理解。
首先就是hashtable,到處都是hashtable,常用的hashparam其實就是hashtable的封裝。當然了這都是codesmith生成的一些類庫內(nèi)容。
也許你已經(jīng)想到了,對于數(shù)據(jù)過濾(where)也同樣是要用到hashtable
這是Persistence下的Dao的一個文件,
Code????????#region?Update
????????public?void?Update(?AuditApply?auditapply?)
????????{
????????????ExecuteUpdate("Update_AuditApply",auditapply);
????????}
????????public?void?Update(?Hashtable?ht?)
????????{
????????????ExecuteUpdate("_Update_AuditApply",ht);
????????}
????????public?void?Update(?string?id,?Hashtable?ht?)
????????{
????????????ht["AuditApplyId"]?=?id;
????????????ExecuteUpdate("_Update_AuditApply",ht);
????????}
????????#endregion?
?(圖1)
看到了吧,除了第一個方法其他都是hashtable,所以我們當然要從他下手來解決問題。
?
Code????????Hashtable?ht?=?new?Hashtable();
????????ht["Status"]?=?"accepted";
????????ht["AuditApplyId"]?=?Request.QueryString["AuditApplyId"].ToString();
????????***.Persistence.DaoAuditApply?daoAuditApply?=?new?***.Persistence.DaoAuditApply();
????????daoAuditApply.Update(Request.QueryString["AuditApplyId"].ToString(),?ht);
????????Response.Write("?<span?style=font-size:20pt;color:red>**********</span>");
(圖2)
這是項目中的一段代碼,AuditApplyId是某個表的查詢依據(jù),(ht["AuditApplyId"]?=?Request.QueryString["AuditApplyId"].ToString();測試以后發(fā)現(xiàn)這句是可以去掉的,因為我們已經(jīng)用querystring來給過了ID)當然了這里還要提到的就是在xml的配置文件中一定要有對應(yīng)的這個字段
Code<update?id="_Update_AuditApply"?parameterClass="Hashtable">
????Update?AuditApply?Set
????????<dynamic??prepend="?"?>
????????<isNotNull?prepend=","?property="AuditDate"?>auditdate=#AuditDate#</isNotNull>
????????<isNotNull?prepend=","?property="Remark"?>remark=#Remark#</isNotNull>
????????<isNotNull?prepend=","?property="ApplyReason"?>applyreason=#ApplyReason#</isNotNull>
????????<isNotNull?prepend=","?property="AuditRequest"?>auditrequest=#AuditRequest#</isNotNull>
????????<isNotNull?prepend=","?property="CostSource"?>costsource=#CostSource#</isNotNull>
????????</dynamic>
????WHERE
????????<dynamic??prepend="?"?>
????????<isNotNull?prepend=","?property="AuditApplyId"?>auditapplyid=#AuditApplyId#</isNotNull>
????????</dynamic>
</update>
(圖3)
看到了吧,在xml中where后面有對應(yīng)的該字段,所以我們就可以放心大膽的去依據(jù)他更新數(shù)據(jù)了。
現(xiàn)在回到
Code????????Hashtable?ht?=?new?Hashtable();
????????ht["Status"]?=?"accepted";
????????ht["AuditApplyId"]?=?Request.QueryString["AuditApplyId"].ToString();
????????***.Persistence.DaoAuditApply?daoAuditApply?=?new?***.Persistence.DaoAuditApply();
????????daoAuditApply.Update(Request.QueryString["AuditApplyId"].ToString(),?ht);
????????Response.Write("?<span?style=font-size:20pt;color:red>**********</span>");
(圖2)
我們之前發(fā)現(xiàn)(圖1)中的最后一個方法,兩個參數(shù),一個是表的PK,另一個是用來給數(shù)據(jù)的hashtable,key=字段名,value=要更新的值,于是乎這樣就完成了數(shù)據(jù)的更新,也許你的項目文件名和類名不太一樣因為是codesmith生成的,不過大致意思都是相同的。方法當然不止這一種,但是吃透了這一種恐怕別的就不成問題了。
?
東西很簡單不過我也試驗了好一會兒,自己也做個記錄也跟大家分享。網(wǎng)上ibatis.net的資源相當少,希望對大家能有個幫助
第一次寫這么多,可能有點亂讓大家見笑了!
轉(zhuǎn)載于:https://www.cnblogs.com/Prewin/archive/2008/11/07/1329029.html
總結(jié)
以上是生活随笔為你收集整理的用ibatis.net简单的数据更新的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3 正则表达式模块re相关
- 下一篇: 碰撞检测技术:kd tree