锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鎴戣寰楄繖閲岄潰鏈闅劇殑搴斿睘GUI鐨勯珮搴﹀彲瀹氬埗鍖栥傛湰浜烘鍦ㄦ兂鐢℅WT鏉ュ仛涓涓熀浜庝笂闈㈡兂娉曠殑SASS騫沖彴錛屽眾鏃惰蔣浠跺彲鐪熸瀹炵幇蹇熸寜闇鎵撻犮傛榪嶫AVA鐣岀殑鍚屼粊澶氭彁瀹濊吹寤鴻銆?br />
]]>
from CommDeductionType obj
where 1=1
#if($obj)
and obj.deductionTypeCode = #{obj.deductionTypeCode}
#end
]]>
2 <datapointer xpath="myData:/" ondata="processData()">
3 <method name="processData">
4 this.selectChild(2);
5 do {
6 if (this.xpathQuery( '@show' ) == 'south park') {
7 Debug.write(this.xpathQuery('firstName/text()'));
8 }
9 } while (this.selectNext());
10 </method>
11 </datapointer>
12
13
Create data set at runtime
$path{} limitations
A
limitation of the $path{} constraint is that the expression it contains is evaluated only at the
initialization time, that is, an expression such as $path{'mynode[' + i + ']/@attr'} will behave like a
$once{} constraint.Custome
Customize the data binding
2 datapath="colors:/value[1]/text()">
3 <method name="applyData" args="v">
4 setBGColor(eval(v))
5 display.setText(v)
6 </method>
7 </view>
$path{}
datapath.setdatapointer
<canvas height="150">
<dataset name="phonebook" src="resources/phonebook.xml"/>
<simplelayout axis="x" spacing="20"/>
<view name="contacts" height="150" width="100">
<view bgcolor="0xe0e0e0" datapath="phonebook:/contacts/contact"
onmouseover="setBGColor(0xc0c0c0)" onmouseout="setBGColor(0xe0e0e0)"
onclick="details.datapath.setPointer(this.datapath.p)">
<simplelayout axis="x" spacing="5"/>
<text datapath="@firstName" resize="true"/>
<text datapath="@lastName" resize="true"/>
</view>
<simplelayout spacing="5"/>
</view>
<view id="details" width="150" height="150" bgcolor="0xe0e0e0" fgcolor="blue">
<datapath/>
<text datapath="@firstName"/>
<text datapath="@lastName"/>
<text datapath="@phone"/>
<text datapath="@email"/>
<simplelayout spacing="5"/>
</view>
</canvas>
]]>
鍩烘湰姒傚康濡備笅:
1. 浣跨敤妯℃澘鎶琛?濡俈elocity,FreeMarker;
2. 鍦⊿QL涓笉瑕佷嬌鐢?,浣跨敤鑷繁鐨刾lace holder ,such as #{variableName};
璞′笅闈㈢殑SQL瑾炲彞
select firstName
聽聽聽聽聽 ,lastName
from users u
where聽 u.userId= #{userId}
#if($companyId)
聽 and u.companyId=#{companyId}
#end
铏曠悊閬庣▼濡備笅:
1.灝囨墍鏈夎畩閲忔斁閫蹭竴鍊婱AP涓?
2.鐢╒ELOCITY閫茶MERGE,灝囧緱鍒頒互涓嬬殑SQL,鍋囧畾companyId 涓嶇偤絀?
聽 select firstName
聽聽聽聽聽 ,lastName
from users u
where聽 u.userId= #{userId}
聽 and u.companyId=#{companyId}
3.鍐嶅皣涓婇潰鐨凷QL閫蹭竴姝ヨ檿鐞?鏍規(guī)摎SQL瑾炲彞涓殑placeHolder闋嗗簭鍜孧AP涓殑璁婇噺,鐢熸垚涓鍊嬭畩閲忕殑LIST,鍚屾檪灝囪畩閲忕殑placeHolder杞夋彌鎴?;
4.灝囪畩閲廘IST鐨勬暩鍊間緷嬈℃敞鍏ュ埌preparedStatement涓?span style="">;
聽 Tips:
閫欓噷閭勫彲鐢熸垚涓鍊嬪畬鍏ㄥ彲鍩瘋鐨?/span>
SQL
瑾炲彞杓稿嚭鍒?/span>
LOG
涓?/span>
,
浠ヤ究閫茶闄ら尟;
5.鍩瘋SQL, 鐢?/span>reflection鎶琛撳皣ResultSet杞夋彌鎴?/span>voList;
聽
灝囦笂闈㈢殑閬庣▼灝佽鎴愪竴鍊?/span>
Class ,
鍙渶灝?/span>
sqlName,parameterMap,voClass
鍌沖叆渚垮彲榪斿洖涓鍊?/span>
voList
鎴栨暩緄?/span>
.
姝よ垑灝囧ぇ澶ф笡鍖?/span>
DAO
鐨勪唬紕?/span>
,
鏍規(guī)摎鎴戠殑綞撻
,
浠g⒓鏈璧風(fēng)⒓娓涘皯
70%,
鏇寸偤閲嶈鐨勬槸鏌ヨ闈炲父瀹規(guī)槗綞
,
妤靛ぇ鍦版笡灝戜簡鍑洪尟鐨勬鐜?/span>
,SQL
瑾炲彞娓呮櫚鏄撴噦
,
涓嶅啀鏄啘闄嬬殑
criteria,
涔熶笉鍐嶆槸灝囦竴鍊嬪嬬殑鍒嗘暎鐨?/span>
SQL
鐗囨柗
,
鎴戝戠殑紼嬪簭鍝″皣鏈冩湁鏇村鐨勬檪闁撲締瀵?/span>
SQL,
鑰屼笉鏄仛鍏跺畠璁撲漢鍘叐鐨勫伐浣?/span>
,
鎺掗尟涔熻畩寰楀紓甯哥啊鍠?/span>
,
鍞竴鍙兘鍑洪尟鐨勫湴鏂瑰彧鑳藉湪
SQL
涓?/span>
,
鍙灝?/span>
LOG
杓稿嚭鐨勫畬鏁村彲鍩瘋
SQL
鏀懼湪
database client
涓煼琛屼竴涓?/span>
,
鍟忛鍦ㄥ摢鍏?/span>
,
涓鐩簡鐒?/span>
.
鎴戠浉淇℃鏂規(guī)硶
姣旇搗
iBatis, Spring
鐨?/span>
jdbcTemplate,Hibernate
鐨?/span>
Criteria
瑕佸鏄撲嬌鐢ㄥ緱澶?/span>
.
鍏跺
Hibernate
鐨?/span>
HQL,
涔熷彲浠ョ敤姝ゆ柟娉曚締鍕曟厠鐢熸垚
HQL.
聽