锘??xml version="1.0" encoding="utf-8" standalone="yes"?>精品在线观看国产,天天综合av,亚洲精美视频 http://www.aygfsteel.com/97030530/category/7965.html鍕囧線鐩村墠 zh-cn Thu, 01 Mar 2007 15:35:25 GMT Thu, 01 Mar 2007 15:35:25 GMT 60 鍥炶皟鍑芥暟鍦⊿pring涓殑浣跨敤 http://www.aygfsteel.com/97030530/archive/2006/03/30/38367.html閫濆幓鐨勫勾鍗?/dc:creator>閫濆幓鐨勫勾鍗?/author>Thu, 30 Mar 2006 13:57:00 GMT http://www.aygfsteel.com/97030530/archive/2006/03/30/38367.html http://www.aygfsteel.com/97030530/comments/38367.html http://www.aygfsteel.com/97030530/archive/2006/03/30/38367.html#Feedback 0 http://www.aygfsteel.com/97030530/comments/commentRss/38367.html http://www.aygfsteel.com/97030530/services/trackbacks/38367.html
聽聽 榪欐槸涓縐嶅鍗曚釜鏂規硶鐨勫弬鏁頒嬌鐢ㄦ帶鍒跺弽杞紝鎶婃帶鍒舵潈鍜屽樊閿欏鐞嗕氦緇欐鏋舵潵澶勭悊銆備弗鏍肩殑璇達紝榪欐槸涓縐峉trategy妯″紡鐨勭壒渚嬶紝浠栦滑鐨勫尯鍒氨鍦ㄤ簬鎺ュ彛鐨勫鏉傚害涓嶅悓銆?br />聽聽 鍦⊿pring鐨凧dbcTemplate涓氨浣跨敤浜嗚繖縐嶆ā寮忋侸dbcTemplate瀹炵幇浜唓uery()鏂規硶錛屽弬鏁版槸SQL瀛楃涓詫紝鍜屼竴涓疄鐜頒簡鍥炶皟鎺ュ彛鐨勶紝灝嗗湪璇誨彇resultSet姣忚鏃惰璋冪敤銆?br />
1
public
聽
interface
聽RowCallbackHandler聽
2
{
3
聽聽聽聽
void
聽processRow(ResultSet聽rs)聽
throws
聽SQLException;
4
}
聽
聽 query()鏂規硶灝佽浜嗗JDBC搴曞眰API鐨勮皟鐢ㄣ?br />
public
聽
void
聽query(String聽sql,聽RowCallbackHandler聽callbackHandler)聽
throws
聽JdbcSqlException聽
{ 聽聽聽聽Connection聽con聽
=
聽
null
; 聽聽聽聽PreparedStatement聽ps聽
=
聽
null
; 聽聽聽聽ResultSet聽rs聽
=
聽
null
; 聽聽聽聽
try
聽 聽聽聽聽
{ 聽聽聽聽聽聽聽聽con聽
=
聽
<
code聽to聽get聽connection
>
聽聽聽聽聽聽聽聽ps聽
=
聽con.prepareStatement聽(sql); 聽聽聽聽聽聽聽聽rs聽
=
聽ps.executeQuery(); 聽聽聽聽聽聽聽聽
while
聽(rs.next())聽 聽聽聽聽聽聽聽聽
{ 聽聽聽聽聽聽聽聽聽聽聽聽callbackHandler.processRow(rs); 聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽rs.close(); 聽聽聽聽聽聽聽聽ps.close(); 聽聽聽聽}
聽 聽聽聽聽
catch
聽(SQLException聽ex)聽 聽聽聽聽
{ 聽聽聽聽聽聽聽聽
throw
聽
new
聽JdbcSqlException(
"
Couldn't聽run聽query聽[
"
聽
+
聽sql聽
+
聽
"
]
"
,聽ex); 聽聽聽聽}
聽聽聽聽
finally
聽 聽聽聽聽
{ 聽聽聽聽聽聽聽聽DataSourceUtils.closeConnectionIfNecessary(
this
.dataSource,聽con); 聽聽聽聽}
}
聽聽 鍦ㄤ笂闈㈢殑渚嬪瓙涓紝JdbcSqlException緇ф壙浜唈ava.lang.RuntimeException錛屼篃灝辨槸璇磋皟鐢ㄨ呭彲浠ラ夋嫨鍘繪崟鑾峰畠錛屼絾鏄繖涓嶆槸蹇呴』鐨勩傚亣濡傚疄鐜頒簡鍥炶皟鎺ュ彛鐨勫瓙綾婚噷鐨勬柟娉曞嚭閿欙紝鑰屼笖涓嶆槸RuntimeException鐨勫瓙綾伙紝涔熷氨鏄繀欏繪崟鑾風殑寮傚父錛屼絾鏄痲uery()鏂規硶涓湪閫昏緫涓婃槸娌℃湁鍔炴硶鎹曡幏瀹冪殑銆傛墍浠od_Johnson鎶婃帴鍙e畾涔夋垚JdbcTemplate鐨刬nner interface銆傝繖灝卞彲浠dbcTemplate灝卞彲浠ユ崟鑾峰畠銆?br />聽聽 鍥炶皟鏂規硶涔熸槸妗嗘灦鐨勪竴縐嶅熀鏈柟娉曪紝姣斿java.io.File綾諱腑鐨刲istFiles(FilenameFilter filter),FilenameFilter灝辨槸涓涓帴鍙o紝鎴戜滑瀹炵幇榪欎釜鎺ュ彛涓殑鏂規硶accept(File dir, String name) 錛岃繖灝辨槸涓涓吀鍨嬬殑鍥炶皟鏂規硶銆?br />聽聽 瑙傚療鑰呮ā寮忕殑浣跨敤絎﹀悎寮闂師鍒欙紝騫朵笖鍒嗙浜嗗叧娉ㄧ偣銆傝繖縐嶅妯″潡淇敼寮鍙戯紝褰卞搷鍏抽棴鐨勫師鍒欎績榪涗簡AOP闈㈠悜鏂歸潰緙栫▼鐨勫彂灞曘係pring涓殑AOP鍙兘灝辨槸榪欑鎬濇兂鐨勫疄鐜幫紝涓漢鐚滄祴鑰屽凡銆偮犅犅犅?br />聽聽聽 鎶婃柟娉曠殑鍙傛暟鏀懼湪涓涓被涓紝榪欐牱浠ュ悗瑕佸鍔犲弬鏁扮殑璇濓紝涓嶇敤淇敼鏂規硶絳懼悕錛屾劅瑙夊緢騫插噣錛屽敮涓鍙兘鐨勭己鐐規槸鍙兘瀵規ц兘鏈夋墍涓嬮檷錛屼笉榪囧緢灝忋傚鏋滄病鏈夌敤EJB鐨勮瘽錛屽簲璇ュ樊涓嶅銆?br /> 聽聽 瀵瑰紓甯哥殑澶勭悊錛屽垎涓篶hecked鍜寀nchecked寮傚父錛宑hecked寮傚父鏄戶鎵縥ava.lang.Exception鐨勩俇nchecked寮傚父緇ф壙java.lang.RuntimeException銆俁od_Johnson涓誨紶鍦ㄥ鍑虹幇寮傚父鍚庯紝紼嬪簭涓嶈兘澶勭悊錛屽彧鑳界粰浜堟病鐢ㄧ殑鎻愮ず鏃剁敤RuntimeException錛屽洜涓篟untimeException瀹瑰櫒浼氳嚜鍔ㄥ鐞嗐傚叧浜庡紓甯哥殑璇︾粏璇存槑錛屾垜涔熸病鐪嬫槑鐧斤紝甯屾湜閭d綅澶ц櫨鑳芥寚鐐規寚鐐廣?/font>
澶囨敞錛氭湰鏂囦富瑕佸唴瀹規潵婧愪簬Rod_Johnson鐨勫ぇ浣滐紝寮虹儓寤鴻鐪嬪師鐗堬紒
]]>Template妯″紡鍜孲trategey妯″紡 http://www.aygfsteel.com/97030530/archive/2006/03/29/38131.html閫濆幓鐨勫勾鍗?/dc:creator>閫濆幓鐨勫勾鍗?/author>Wed, 29 Mar 2006 12:49:00 GMT http://www.aygfsteel.com/97030530/archive/2006/03/29/38131.html http://www.aygfsteel.com/97030530/comments/38131.html http://www.aygfsteel.com/97030530/archive/2006/03/29/38131.html#Feedback 0 http://www.aygfsteel.com/97030530/comments/commentRss/38131.html http://www.aygfsteel.com/97030530/services/trackbacks/38131.html 聽聽聽聽聽聽聽聽聽鍦ㄥ涔燬pring鐨勮繃紼嬩腑緇忓父鐪嬪埌涓浜涘ぇ铏炬帹鑽愰槄璇籖od_Johnson鐨?lt;Expert_One-on-One_J2EE_Design_and_Development>涔?鎹姝や功鐨勭鍥涚珷姣忎釜瀛ava浜洪兘瑕佺湅鐪?濂戒笉瀹規槗鎼炲埌pdf鐗?鍙儨鏄疎鏂囩殑,涓枃鐨勬悶涓嶅埌,娌″姙娉曞彧濂界‖鐫澶寸毊鐪嬩笅鍘匯?br />聽聽聽絎洓绔犱富瑕佽鐨勬槸闈㈠悜瀵硅薄鐨勮璁℃ā寮?鎬庝箞閲囩敤涓鑷寸殑緙栫爜鍏害,鎬庝箞鍒╃敤涔熸湁鐨勭郴緇?榪欏浜庣悊瑙pring妗嗘灦鏈夊緢澶х殑甯姪!鍥犱負榪欐槸Spring涔嬬埗鐨勭紪紼嬫濇兂銆?: 聽聽聽鍏充簬鎺ュ彛鐨勫ソ澶勫強緇勫悎妯″紡鐨勬湁鐐?鎴戣繖閲屽氨涓嶈浜嗐?br />聽聽聽Template妯″紡:閫傜敤鑼冨洿,鎴戜滑鐭ラ亾鏌愪釜涓氬姟鎴栫畻娉曠殑姝ラ,浣嗘槸涓嶇煡閬撴庝箞鎶婃瘡姝ョ殑欏哄簭銆俆emplate妯″紡閲囩敤鍦╝bstract綾諱腑鏈変釜Public and final鐨勬柟娉曞皝瑁呬簡璋冪敤姣忔鐨勯『搴?涔熷氨鏄鎺у埗浜嗗伐浣滄祦紼嬨傛墍鏈夌殑緇ф壙綾諱篃灝卞彧瑕佸疄鐜版瘡姝ョ殑鍏蜂綋鏂規硶銆傝繖鏄帶鍒跺弽杞殑涓縐嶈〃鐜幫紝浠ュ墠閮芥槸鎴戜滑鍦ㄧ▼搴忎腑鍘昏皟鐢ˋPI涓殑鏂規硶,鐜板湪鏄垜浠疄鐜癆PI鏌愪釜綾諱腑鐨勬娊璞℃柟娉曠粰璇ョ被璋冪敤!榪欑鎺у埗鍙嶈漿鐨勬満鍒?鏄鏋剁殑浠g爜鍩虹.姣斿,EJB涓殑Init()鍜宒estory()鏂規硶絳夌瓑.Spring妗嗘灦涓殑瀵規暟鎹寔涔呭眰鐨勫疄鐜板氨鏄緢濂界殑渚嬪瓙! 涓嬮潰鎶婁功涓殑渚嬪瓙COPY涓? 聽 AbstractOrderEJB鐖剁被瀹炵幇浜嗗晢涓氶昏緫,鍖呮嫭鐢ㄦ埛鏄惁閲戦瓚呯幇鍜屽澶х殑璁㈠崟榪涜鎵撴姌,palceOrder()鏂規硶灝辨槸閭d釜宸ヤ綔嫻佹柟娉曘?/font>
abstract
聽
class
聽AbstractOrderEJB
{ 聽聽聽聽
public
聽
final
聽Invoice聽placeOrder聽(
int
聽customerId,聽InvoiceItem[]聽items) 聽聽聽聽聽聽聽聽
throws
聽NoSuchCustomerException,聽SpendingLimitViolation聽 聽聽聽聽
{ 聽聽聽聽聽聽聽聽
int
聽total聽
=
聽
0
; 聽聽聽聽聽聽聽聽
for
聽(
int
聽i聽
=
聽
0
;聽i聽
<
聽items.聽length;聽i
++
)聽 聽聽聽聽聽聽聽聽
{ 聽聽聽聽聽聽聽聽聽聽聽聽total聽
+=
聽getItemPrice聽(items聽[i])聽
*
聽items聽[i]聽.getQuantity(); 聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
if
聽(total聽
>
聽getSpendingLimit聽(customerId)聽) 聽聽聽聽聽聽聽聽
{ 聽聽聽聽聽聽聽聽聽聽聽聽getSessionContext()聽.setRollbackOnly(); 聽聽聽聽聽聽聽聽聽聽聽聽
throw
聽
new
聽SpendingLimitViolation聽(total,聽limit); 聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
else
聽
if
聽(total聽
>
聽DISCOUNT_THRESHOLD)聽 聽聽聽聽聽聽聽聽
{ 聽聽聽聽聽聽聽聽聽聽聽聽
//
聽Apply聽discount聽to聽total
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
int
聽invoiceId聽
=
聽placeOrder聽(customerId,聽total,聽items); 聽聽聽聽聽聽聽聽
return
聽
new
聽InvoiceImpl聽(iid,聽total); 聽聽聽聽}
聽聽聽聽
protected
聽
abstract
聽
int
聽getItemPrice(InvoiceItem聽item); 聽聽聽聽
protected
聽
abstract
聽
int
聽getSpendingLimit(customerId)
throws
聽NoSuchCustomerException; 聽聽聽聽
protected
聽
abstract
聽
int
聽placeOrder(
int
聽customerId,聽
int
聽total,InvoiceItem[]聽items); 聽聽}
聽聽聽getItemPrice錛実etSpendingLimit錛宲laceOrder榪欎笁涓柟娉曪紝鏄痯rotected and abstract鐨勶紝鐢卞瓙綾繪潵瀹炵幇銆?/font>聽聽 Strategey妯″紡鍜孴emplate妯″紡姣旇緝鐩鎬技.鐢⊿trategey妯″紡瀵逛笂涓緥瀛愯繘琛屾敼閫?鎶婁笁涓崟鐙殑鏂規硶鏀懼叆涓涓帴鍙d腑,宸ヤ綔嫻佹柟娉曡繘琛屽涓嬩慨鏀?
聽1
public
聽
class
聽OrderEJB
聽2
{
聽3
聽聽聽聽
private
聽DataHelper聽dataHelper;
聽4
聽聽聽聽
public
聽
void
聽setDataHelper聽(DataHelper聽newDataHelper)聽
聽5
聽聽聽聽
{
聽6
聽聽聽聽聽聽聽聽
this
.dataHelper聽
=
聽newDataHelper;
聽7
聽聽聽聽}
聽8
聽聽聽聽
public
聽
final
聽Invoice聽placeOrder聽(
int
聽customerId,聽InvoiceItem[]聽items)
聽9
聽聽聽聽聽聽聽聽
throws
聽NoSuchCustomerException,聽SpendingLimitViolation聽
10
聽聽聽聽
{
11
聽聽聽聽聽聽聽聽
int
聽total聽
=
聽
0
;
12
聽聽聽聽聽聽聽聽
for
聽(
int
聽i聽
=
聽
0
;聽i聽
<
聽items.length;聽i
++
)聽
13
聽聽聽聽聽聽聽聽
{
14
聽聽聽聽聽聽聽聽聽聽聽聽total聽
+=
聽
this
.dataHelper.getItemPrice(items[i])聽
*
15
聽聽聽聽聽聽聽聽聽聽聽聽items[i].getQuantity();
16
聽聽聽聽聽聽聽聽}
17
聽聽聽聽聽聽聽聽
if
聽(total聽
>
聽
this
.dataHelper.getSpendingLimit(customerId))聽
18
聽聽聽聽聽聽聽聽
{
19
聽聽聽聽聽聽聽聽聽聽聽聽getSessionContext()聽.setRollbackOnly();
20
聽聽聽聽聽聽聽聽聽聽聽聽
throw
聽
new
聽SpendingLimitViolation(total,聽limit);
21
聽聽聽聽聽聽聽聽}
聽
22
聽聽聽聽聽聽聽聽
else
聽
if
聽(total聽
>
聽DISCOUNT_THRESHOLD)聽
23
聽聽聽聽聽聽聽聽
{
24
聽聽聽聽聽聽聽聽聽聽聽聽
//
聽Apply聽discount聽to聽total
25
聽聽聽聽聽聽聽聽}
26
聽聽聽聽聽聽聽聽
int
聽invoiceId聽
=
聽
this
.dataHelper.placeOrder聽(customerId,聽total,聽items);
27
聽聽聽聽聽聽聽聽
return
聽
new
聽InvoiceImpl聽(iid,聽total);
28
聽聽聽聽}
29
}
聽聽聽Stratery妯″紡姣擳emlater妯″紡澶嶆潅鐐癸紝浣嗘槸瀹冨叿鏈夋洿楂樼殑鐏墊椿鎬э紝瀵逛簬瀹為檯欏圭洰涓浜涙祦紼嬬殑鎺у埗鏈夊緢濂界殑浣滅敤錛佽繖鏄湰浜虹殑瑙傜偣錛屼笉涓瀹氭紜紝浠呬緵鍙傝冦?br />聽聽聽 鍦ㄤ笅闈㈢殑鎯呭喌涓?鐢⊿tratery妯″紡姣擳emlater妯″紡鏇村ソ: 1,姣忔閮芥槸鍙彉鐨?br />2,瀹炵幇姣忔鐨勭被闇瑕佷竴涓嫭绔嬬殑緇ф壙浣撶郴 3,瀹炵幇姣忔鐨勭被瑕佸拰鍏朵粬鐨勭被鎵撲氦閬?br />4,瀹炵幇姣忔鐨勭被瑕佸疄鐜板鎬佹?br /> 澶囨敞錛氭湰鏂囦富瑕佸唴瀹規潵婧愪簬Rod_Johnson鐨勫ぇ浣滐紝寮虹儓寤鴻鐪嬪師鐗堬紒
]]>
主站蜘蛛池模板:
凯里市 |
张家港市 |
浮梁县 |
定西市 |
通州市 |
章丘市 |
灵寿县 |
越西县 |
长子县 |
赤峰市 |
青冈县 |
双城市 |
山东省 |
宝丰县 |
宁化县 |
阳春市 |
南京市 |
斗六市 |
永登县 |
江川县 |
宁乡县 |
永顺县 |
郧西县 |
呼伦贝尔市 |
儋州市 |
宁远县 |
德化县 |
车致 |
济宁市 |
鸡西市 |
汝城县 |
梨树县 |
清远市 |
家居 |
克东县 |
蓬莱市 |
德州市 |
吉隆县 |
贡嘎县 |
拉孜县 |
岚皋县 |