1錛夋柊鎵嬨€備換浣曢」鐩粍鎴愬憳閮戒笉鍙伩鍏嶅湴鍑虹幇鏂版墜錛屼粬浠線寰€鏄垰鍒氫粠澶у姣曚笟鐨勫鐢熴€傝繖浜涙柊鎵嬬敱浜庤蔣浠跺紑鍙戞椂闂村お鐭紝寰€寰€鎶€鏈笉鎴愮啛錛屾病鏈夊艦鎴愯壇濂界殑寮€鍙戜範鎯紝鎵€浠ョ紪鍐欎唬鐮佽川閲忚緝宸紝闂寰堝銆備粬浠父甯告垚涓洪」鐩粍鐨?#8220;楦¤倠”錛岀敤澶氫簡欏圭洰璐ㄩ噺鏃犳硶寰楀埌淇濊瘉錛屼笉鐢ㄥ垯鍙堜漢鎵嬩笉澶熴€?/p>
2錛変漢鍛樺彉鍔ㄣ€備竴涓淮鎶ゆ椂闂寸◢闀夸竴鐐瑰効鐨勮蔣浠墮」鐩紝浜哄憳鍙樺姩鏄湪鎵€闅懼厤鐨勩€傝€佸憳宸ヨ璋冨姩鍒板叾瀹冮」鐩幓浜嗭紝鐢辨柊鍛樺伐鏉ユ帴鏇夸粬浠殑宸ヤ綔銆傚湪鎴戠殑欏圭洰緇勪腑錛屼漢鍛樿皟鍔ㄨ揪鍒頒簡90%錛屽敮涓€娌℃湁璋冭蛋鐨勫氨鏄垜鑷繁銆傛柊鍛樺伐鍦ㄦ帴鏇胯€佸憳宸ヨ繘琛屼唬鐮佺淮鎶わ紝鐢氳嚦緇х畫榪涜鏂扮殑寮€鍙戠殑鏃訛紝鐢變簬瀵瑰師鏈変唬鐮佷互鍙婅璁℃€濊礬鐞嗚В鐨勫亸宸紝涔熶細鍑虹幇澶ч噺鐨勪綆鍔d唬鐮併€?/p>
3錛変笉瑙勮寖鐨勪唬鐮佺紪鍐欍€傚嵆浣塊櫎鍘諱互涓婁袱涓棶棰樼殑褰卞搷錛岄」鐩粍鎴愬憳緙栧啓鐨勪唬鐮佸悓鏍蜂細鍑虹幇闂銆傚湪欏圭洰寮€鍙戜箣鍒濓紝鎴戜滑寰€寰€浼氬埗瀹氫竴涓唬鐮佺紪鍐欑殑瑙勮寖錛屼絾鍦ㄩ」鐩紑鍙戣繃紼嬩腑錛岃澶氭垚鍛樺線寰€浼氬拷瑙嗚繖浜涗唬鐮佽鑼冭€岃繘琛岄殢鎰忕殑緙栧啓銆傞殢鎰忓湴浠g爜緙栧啓浼氶檷浣庝唬鐮佺殑鍙鎬с€佸彲緇存姢鎬у拰鏄撳彉鏇存€с€傞偅涔堬紝鎴戜滑搴斿綋閲囩敤浠€涔堟牱鐨勭鐞嗘帾鏂斤紝淇濊瘉浠g爜鐨勮鑼冿紝鎻愰珮浠g爜鐨勮川閲忓憿錛?/p>
浠ヤ笂闂錛屼篃鏄垜鍦ㄩ」鐩紑鍙戜腑涓嶆柇鎽哥儲鍜屾€濊€冪殑闂錛岃€屼竴浜涙湁緇忛獙鐨勯」鐩粡鐞嗙粰鍑轟簡浠栦滑鐨勮В鍐充箣閬擄紝閭e氨鏄?#8220;浠g爜澶嶆煡”銆?br />浠€涔堟槸浠g爜澶嶆煡
浠g爜澶嶆煡錛圕ode Review錛夛紝鍙堝彨“浠g爜瀹℃煡”錛屽叾鍩烘湰鎬濇兂灝辨槸錛屽湪寮€鍙戜漢鍛樼紪鍐欏畬鑷繁鐨勪唬鐮佸悗錛岀敱鍏朵粬浜烘潵澶嶆煡浠栧啓鐨勪唬鐮侊紝浠庤€屾湁鏁堝湴鍙戠幇浠g爜涓瓨鍦ㄧ殑緙洪櫡銆備唬鐮佸鏌ョ殑涓€涓熀鏈悊璁哄氨鏄紝褰撴垜浠秺鏃╁彂鐜頒唬鐮佸瓨鍦ㄧ殑緙洪櫡錛屾垜浠В鍐崇己闄風殑浠d環灝辮秺浣庛€備唬鐮佸鏌ュ線寰€鍒嗘垚浠ヤ笅涓€涓柟闈㈣繘琛屽鏌ワ細
1錛変唬鐮侀鏍箋€傚湪欏圭洰寮€鍙戜箣鍒濓紝鎴戜滑寰€寰€浼氬埗瀹氫竴涓唬鐮佺紪鍐欑殑瑙勮寖錛屽疄闄呬笂錛岃繖涓唬鐮佽鑼冨氨鍖呭惈浜嗘暣涓」鐩粍鐨勪唬鐮侀鏍箋€傜敱浜庤蔣浠跺紑鍙戜漢鍛樼殑璁捐涔犳儻涓嶅悓錛屽鏋滀笉緇熶竴浠g爜椋庢牸錛屼竴涓」鐩腑鐨勪唬鐮佸皢浜旇姳鍏棬錛屽鍙橀噺鍜屽父閲忕殑鍛藉悕銆佹帴鍙d笌瀹炵幇綾葷殑娉ㄩ噴銆佷綍鏃跺洖杞︺€佹€庢牱緙╄繘絳夌瓑銆備竴涓簲鑺卞叓闂ㄧ殑璁捐椋庢牸錛屽繀灝嗕負鏃ュ悗鐨勭淮鎶や笌鏀硅繘甯︽潵鍥伴毦銆傛垜浠€氳繃浠g爜澶嶆煡錛屼竴鏂歸潰鐫d績寮€鍙戜漢鍛樻寜鐓ц鑼冪紪鍐欎唬鐮侊紝鍙︿竴鏂歸潰涔熶嬌寮€鍙戜漢鍛樿嚜韜艦鎴愯壇濂界殑緙栫▼涔犳儻銆備唬鐮侀鏍肩殑瀹℃煡錛岀敱浜庡唴瀹規瘮杈冨崟涓€錛屾垜浠父甯稿彲浠ラ€氳繃涓€浜涗唬鐮佸鏌ョ殑宸ュ叿鏉ヨ嚜鍔ㄥ畬鎴愶紝鎻愰珮澶嶆煡鐨勬晥鐜囥€?/p>
2錛夐噸澶х己闄楓€傚湪涓€浜涘叧浜庝唬鐮佸鏌ョ殑鏂囩珷涓紝鍒楀嚭浜嗕竴涓父甯哥殑鍗曞瓙錛屾弿榪頒簡浠g爜澶嶆煡搴斿綋鐫€閲嶆敞鎰忕殑閲嶅ぇ緙洪櫡錛屽畠浠寘鎷細瀛樺湪SQL娉ㄥ叆銆佹槗鍙楄法绔欑偣鑴氭湰鏀誨嚮銆佺紦瀛樺尯婧㈠嚭銆佹墭綆′唬鐮佺瓑絳夈€傞」鐩粍鍙互涓嶆柇縐瘡閲嶅ぇ緙洪櫡鐨勫鏌ラ」鐩紝騫跺湪姣忔瀹℃煡涓€愪竴媯€鏌ャ€傞噸澶х己闄峰鏌ユ槸涓€涓箒鐞愯€岀粏鑷寸殑宸ヤ綔錛屽鏋滆兘緙栧啓鎴栦嬌鐢ㄤ竴浜涘鏌ヨ蔣浠訛紝鍙互澶уぇ鎻愰珮鎴戜滑鐨勫鏌ユ晥鐜囥€?/p>
3錛夎璁¢€昏緫涓庢€濊礬鐨勫鏌ャ€傛垜璁や負錛岃繖閮ㄥ垎鐨勫鏌ユ槸浠g爜澶嶆煡涓渶鏍稿績銆佹渶鏈変環鍊肩殑閮ㄥ垎銆備唬鐮侀鏍間笌閲嶅ぇ緙洪櫡鐨勫鏌ワ紝铏界劧閲嶈浣嗙畝鍗曡€屾満姊幫紝鍙互閫氳繃杞歡鑷姩媯€鏌ワ紱鑰岃璁¢€昏緫涓庢€濊礬鐨勫鏌ワ紝鍗存槸澶嶆潅鑰屾湁娣卞害鐨勫鏌ワ紝闇€瑕佹湁涓€瀹氱悊璁烘繁搴﹀拰緙栫爜緇忛獙鐨勪漢鎵嶈兘瀹屾垚錛岃€屼笖瀵規柊鎵嬪挨鍏墮噸瑕併€傚墠闈㈡彁鍒幫紝鏂版墜鏄換浣曢」鐩粍涓嶅彲閬垮厤鐨勯棶棰樸€備絾閬楁喚鐨勬槸錛岃澶氶」鐩粡鐞嗙殑鍔炴硶鏄紝鍙皢涓€浜涚畝鍗曡€屽皯閲忕殑宸ヤ綔浜ょ粰鏂版墜瀹屾垚錛岃€屽皢澶ч噺澶嶆潅鐨勫伐浣滀氦緇欎漢鏁頒笉澶氱殑閭d簺鑰佹墜鏉ュ畬鎴愩€傝繖鏍風殑緇撴灉鏄紝鏂版墜濮嬬粓鏄柊鎵嬶紝浠栦滑娌℃湁緇忚繃瓚沖鐨勯敾鐐鹼紱鑰佹墜绱绱椿錛屾棤娉曟寚鏈涙柊鎵嬩簣浠ュ垎鎷呭伐浣溿€傚浜庤繖涓棶棰橈紝鎴戠殑鍔炴硶鏄紝閫氳繃浠g爜澶嶆煡錛岃鑰佹墜鍘繪寚瀵兼柊鎵嬶紝璁╁洟闃熸暣浣撶礌璐ㄨ揪鍒版彁楂樸€傚叿浣撳姙娉曞氨鏄紝鍦ㄦ柊鎵嬪畬鎴愮紪鐮佷互鍚庯紝璁╄€佹墜鍘昏繘琛屼唬鐮佸鏌ワ紝鎸囧嚭鏂版墜鐨勯棶棰橈紝鎸囧鏂版墜璁捐銆傝繖鏍風殑榪囩▼鏈€鍒濆彲鑳介渶瑕侀噸鏋勶紝鐢氳嚦閲嶆柊緙栫爜銆備絾緇忚繃榪欐牱鐨勮繃紼嬶紝鏂版墜灝嗛€愭笎鐔熺粌錛岃繀閫熸垚涓鴻€佹墜錛屼嬌鏁翠綋鍥㈤槦绱犺川鎻愰珮銆?br />浠g爜澶嶆煡鐨勫艦寮忓強浼樼己鐐?
緇忚繃浠ヤ笂鐨勬弿榪幫紝鎴戜滑鍙互鍙戠幇浠g爜澶嶆煡鐨勪紭鐐規樉鑰屾槗瑙併€傞鍏堬紝閫氳繃瀵逛唬鐮侀鏍間笌瑙勮寖鐨勫鏌ワ紝鍙互澶уぇ鎻愰珮浠g爜鐨勫彲璇繪€т笌鍙淮鎶ゆ€с€傜幇鍦ㄧ殑杞歡錛屽線寰€闇€瑕佹寔緇殑緇存姢涓庡崌綰э紝浜哄憳鍙樺姩涔熷湪鎵€闅懼厤錛屽洜姝や唬鐮佺殑鍙鎬т笌鍙淮鎶ゆ€у挨涓洪噸瑕併€備唬鐮佸鏌ユ槸涓€縐嶉灜絳栵紝鍥犱負瀹冪殑瀛樺湪錛岀潱淇冪潃寮€鍙戜漢鍛樿嚜瑙夊湴瑙勮寖緙栫爜錛屽吇鎴愬ソ鐨勭紪鐮佷範鎯紝鎻愰珮浠g爜璐ㄩ噺銆備竴涓€煎緱娉ㄦ剰鐨勯棶棰樻槸錛屽鏋滀綘涓嶅幓璇誨埆浜虹殑浠g爜錛屾案榪滀笉鑳芥繁鍒葷悊瑙d粈涔堟槸鍙鐨勪唬鐮侊紝鑰岃嚜宸辯殑浠g爜涓嶈鍒漢鍘昏騫朵笖鍙嶉錛屼篃姘歌繙涓嶇煡閬撹嚜宸辯殑浠g爜鏄惁鍙錛屽嵆浣夸綘鏄竴涓紪鐮佸騫寸殑鑰佹墜銆備唬鐮佸鏌ユ伆鎭拌В鍐充簡榪欎釜闂錛屽€煎緱浣犲幓灝濊瘯銆?/p>
鍏舵錛屼唬鐮佸鏌ユ槸涓€嬈$▼搴忓憳涔嬮棿鐨勪氦嫻併€傛柊鎵嬪彲浠ユ湁鏇村鐨勬満浼氬悜鑰佹墜瀛︿範鍜屾寚瀵鹼紝鎻愰珮鑷韓鐨勮璁℃按騫籌紙搴斿綋璇磋繖瀵逛簬浠栦滑鏄潪甯稿疂璐電殑錛夛紱鑰佹墜閫氳繃瀵規柊鎵嬬殑鎸囧錛屾暣鐞嗗拰鍗囧崕鑷繁鐨勮璁℃€濊礬涓庣悊璁猴紝鍚屾椂涔熸槸瀵硅嚜宸卞彟涓€鏂歸潰鐨勯敾鐐間笌鎻愰珮銆傚彟澶栵紝褰撲綘鍙戠幇騫舵寚鍑轟簡鍒漢鐨勪竴涓棶棰樹互鍚庯紝鍚屾椂涔熸槸鍦ㄨ紺鴻嚜宸變笉瑕佺姱鍚屾牱鐨勯敊璇紝榪欏瀹℃煡涓庤瀹℃煡鑰呴兘鏄湁鐩婄殑銆?/p>
铏界劧浠g爜澶嶆煡鏈夊姝ょ獊鍑虹殑浼樼偣錛屼絾瀹冪殑緙虹偣涔熸槸闈炲父鏄捐憲鐨勶紝閭e氨鏄畠闇€瑕佷粯鍑哄姝ゅ法澶х殑浠d環銆傚綋涓€涓漢瀹屾垚緙栫爜浠ュ悗錛岃繕闇€瑕佸彟澶栫殑浜哄幓瑙h鍜屽鏌ワ紝騫惰姹傜紪紼嬩漢鍛樺畬鎴愮浉搴旂殑淇敼錛岀敋鑷抽噸鏋勫拰閲嶅啓錛岃繖鏈韓灝辨槸涓€縐嶅法澶х殑浠d環銆傝繖瀵逛簬鍏舵湰韜氨宸茬粡浜哄憳鍜屾椂闂撮潪甯哥揣寮犵殑杞歡寮€鍙戦」鐩潵璇達紝鏃犵枒鏄竴縐嶉洩涓婂姞闇溿€傛椂闂淬€佷漢鍔涗笌浠g爜璐ㄩ噺錛屽叾鏈韓灝辨槸楸煎拰鐔婃帉涓嶅彲鍏煎緱錛屽叧閿槸濡備綍鍘繪潈琛°€傛鍥犱負濡傛錛屼笉鍚屽叕鍙擱€夋嫨浜嗕笉鍚岀殑浠g爜澶嶆煡絳栫暐銆?/p>
鍓嶄笉涔咃紝鎴戝惉浜嗛煩鍥戒竴瀹跺ぇ鍨嬫父鎴忚蔣浠跺叕鍙歌皥浠栦滑鐨勪唬鐮佸鏌ャ€傜敱浜庤繖瀹跺叕鍙稿湪杞歡寮€鍙戞椂錛屾椂闂村拰浜哄姏涓嶆槸鏈€鍏抽敭鍜岀揣瑕佺殑闂鑰屼唬鐮佽川閲忥紝鎵€浠ヤ粬浠噰鐢ㄤ簡涓€縐嶄弗鏍肩殑浠g爜澶嶆煡絳栫暐銆備弗鏍肩殑浠g爜澶嶆煡絳栫暐錛屼竴縐嶆柟寮忔槸鐢變笓浜鴻繘琛屼唬鐮佸鏌ャ€傝繖縐嶆柟寮忥紝鍦ㄤ漢鍛樼粍緇囧艦寮忎笂錛屼粠杞歡寮€鍙戜漢鍛樹腑鍗曠嫭鎻愬嚭浜嗕竴浜涚粡楠屼赴瀵岀殑浜猴紝緇勬垚涓€涓唬鐮佸鏌ュ皬緇勶紝涓撹亴瀵瑰叾瀹冭蔣浠跺紑鍙戝皬緇勮繘琛屼唬鐮佸鏌ャ€傝繖縐嶆柟寮忥紝浠g爜澶嶆煡灝忕粍浠ョ涓夋柟鐨勮韓浠藉幓澶嶆煡鍚勪釜欏圭洰緇勭殑浠g爜錛屽彲浠ヤ繚璇佸鏌ョ殑鍏鉤鍏錛屼絾鍘嬪姏鏃犵枒鏄法澶х殑錛堟兂鎯充粬浠鏌ョ湅閭d箞澶氱殑浠g爜錛夈€?/p>
鍙︿竴縐嶆柟寮忥紝鏄互涓€涓」鐩紑鍙戝皬緇勪負鍗曞厓榪涜浠g爜浜掓煡錛屽嵆涓€涓漢鐨勪唬鐮侊紝瑕佷負灝忕粍鎵€鏈夋垚鍛樿繘琛屽鏌ャ€傝繖縐嶆柟寮忔鏃犵枒闂紝鍏朵粯鍑虹殑浠d環澶ぇ浜嗐€傚榪欑鏂瑰紡鐨勪竴縐嶅彉閫氭柟寮忔槸灝哫P涓殑緇撳緙栫▼榪涜緇撳悎錛岀劧緇撳緙栫▼涓殑涓や釜浜虹浉浜掕繘琛屼唬鐮佷簰鏌ャ€傞噰鐢ㄧ粨瀵圭紪紼嬬殑欏圭洰緇勫彲浠ュ皾璇曡繖鏍鋒柟寮忥紝閬楁喚鐨勬槸鐩墠鍥藉唴閲囩敤緇撳緙栫▼鐨勯」鐩粍瀹炲湪澶皯浜嗐€備互涓婁袱縐嶄唬鐮佸鏌ョ殑鏈€澶у紛鐥呭氨鏄矗浠誨埗錛屽嵆瀹℃煡鑰呮病鏈夊お澶氱殑璐d換鍘誨彂鐜拌瀹℃煡鑰呯殑闂錛屽彂鐜頒簡闂瀵瑰鏌ヨ€呮病鏈変換浣曞ソ澶勶紝鍙嶅€掍笌琚鏌ヨ€呯粨鎬紱鐩稿弽錛屽鏌ヨ€呮病鏈夊彂鐜伴棶棰樹篃涓嶄細鎷呰礋浠諱綍璐d換銆傝繖鏍風殑緇撴灉灝卞鑷翠簡浠g爜澶嶆煡嫻佷簬褰㈠紡錛氬鏌ヨ€呰崏鑽夊鏌ワ紝鍚勬柟鐨嗗ぇ嬈㈠枩錛岄棶棰樹緷鐒跺瓨鍦ㄣ€?/p>
緇間笂鎵€榪幫紝铏界劧浠g爜澶嶆煡浼樺娍鏄庢樉錛屼絾浠ヤ笂鍑犵褰㈠紡閮戒笉鑳戒負鏅€氱殑杞歡寮€鍙戝洟闃熸墍鎺ュ彈錛屽氨姝ゆ垜紲嚭浜嗘垜鐨勬渶浣沖疄璺碉細浠ュ皬緇勪負鍗曚綅錛岀粍闀胯矗浠誨埗鐨勪唬鐮佸鏌ュ艦寮忋€?br />浠g爜澶嶆煡鐨勬渶浣沖疄璺?
浠g爜澶嶆煡鏄湁浠d環鐨勶紝鐢氳嚦鏈夋椂鏄法澶х殑錛屽洜姝や唬鐮佸鏌ヤ笉瀹滈綣侊紝鏈€濂戒竴浠戒唬鐮佸彧瀹℃煡涓€嬈°€傚悓鏃訛紝浠g爜澶嶆煡鑰呭簲褰撳鎵€瀹℃煡鐨勪唬鐮佽礋鏈夎矗浠伙紝鍗寵兘澶熷ぇ鑳嗗湴瀹℃煡騫舵寚鍑鴻瀹℃煡鑰呯殑闂錛屽茍瑕佹眰琚鏌ヨ€呴檺鏈熸暣鏀廣€備笌姝ゅ悓鏃訛紝琚鏌ュ悗鐨勪唬鐮佸鏋滆繕鍑虹幇緙洪櫡錛屽鏌ヨ€呭簲褰撹礋鏈夎矗浠匯€傚彧鏈夋弧瓚充簡浠ヤ笂涓変釜鏉′歡錛屼唬鐮佸鏌ユ墠鑳戒負鎴戜滑鎵€鎺ュ彈銆傛鏃犵枒闂紝欏圭洰寮€鍙戝皬緇勭殑緇勯暱鏉ユ媴褰撴璐d換鏄渶鍚堥€傜殑銆?/p>
涓€涓」鐩紑鍙戠粍錛屾牴鎹叾鍔熻兘鐨勫垝鍒嗭紝鍙互鍒掑垎涓哄涓皬緇勶紝姣忎釜灝忕粍璐熻矗涓€涓瓙妯″潡銆傚湪榪欐牱涓€涓皬緇勪腑錛屽皬緇勯暱鏃犵枒鏄渶鏈夌粡楠岀殑寮€鍙戜漢鍛橈紝鐢變粬鍘昏礋璐g粍緇囧拰鎸囧鍏跺畠鎴愬憳鏄悎閫傜殑銆傚皬緇勬垚鍛樹笉瑕佸お澶氾紝寰€寰€鏄?~5浜恒€傚皬緇勯暱涓嶈鍒嗛厤澶鐨勫紑鍙戜換鍔★紝浠栫殑涓昏宸ヤ綔鏄寚瀵煎拰鐩戠潱灝忕粍鍏跺畠鎴愬憳榪涜寮€鍙戙€傚皢浠栦粠綣侀噸鐨勫紑鍙戜換鍔′腑瑙h劚鍑烘潵錛屼粬鍙互鏈夋洿澶氱殑綺懼姏鍘繪寚瀵煎叾浠栨垚鍛樼殑璁捐錛屽茍涓斿鏌ヤ粬浠殑浠g爜銆傛渶緇堬紝浠栬瀵瑰皬緇勬墍鏈夋垚鍛樼殑浠g爜璐ㄩ噺璐熻矗錛岀敱欏圭洰緇忕悊鎴栬川閲忕鐞嗗憳榪涜鎶芥煡錛屾楠屽叾鏁翠綋鎯呭喌銆?/p>
濡傛灉浣犲彧鏄竴涓皬鍨嬮」鐩紝浜哄憳鎬誨叡鍦?浜轟箣鍐咃紝閭d箞浣犱笉鐢ㄨ繖鏍峰垎緇勩€備綔涓洪」鐩粡鐞嗙殑浣犲氨鏄偅涓皬緇勯暱錛屾寚瀵煎拰鐩戠潱浣犵殑鎴愬憳銆傝繖鏍峰畨鎺掓槸鍥犱負鍦ㄧ幇浠g殑綆$悊鐞嗚涓涓猴紝涓€涓漢鏈€澶氬彧鑳界鐞?涓漢錛岃秴榪?涓漢灝卞簲褰撳垎緇勭鐞嗐€傝€屽鏋滀綘鍦?浜轟箣鍐呭綋鐒跺氨涓嶉渶瑕佸垎寮€鍟︺€?/p>
浣滀負緇勯暱錛屼綘鍙互鏈夋晥鍦板鏌ュ拰綆$悊浣犵殑灝忕粍鎴愬憳銆傚悓鏃訛紝鐢變簬浣犺礋鏈夎矗浠伙紝浣犱篃涓嶅緱涓嶈鐪熸湁鏁堝湴鍘誨畬鎴愬鏌ュ伐浣溿€傞€氳繃浠ヤ笂鐨勭粍緇囧艦寮忥紝浠g爜澶嶆煡鍙互綆€渚挎湁鏁堝湴鍦ㄩ」鐩粍涓紑灞曡搗鏉ワ紝浠庤€屼粠綆$悊涓婃湁鏁堝湴鎻愰珮杞歡寮€鍙戠殑浠g爜璐ㄩ噺銆?br />
杞嚜錛?a >http://summerbell.iteye.com/blog/601483
public static boolean getBoolean(String name)
"true"
瀛楃涓叉椂錛屾墠榪斿洖 true
銆傦紙浠?JavaTM 騫沖彴鐨?1.0.2 鐗堟湰寮€濮嬶紝瀛楃涓茬殑嫻嬭瘯涓嶅啀鍖哄垎澶у皬鍐欍€傦級閫氳繃 getProperty
鏂規硶鍙闂郴緇熷睘鎬э紝姝ゆ柟娉曠敱 System
綾誨畾涔夈€?
濡傛灉娌℃湁浠ユ寚瀹氬悕縐板懡鍚嶇殑灞炴€ф垨鑰呮寚瀹氬悕縐頒負絀烘垨 null錛屽垯榪斿洖 false
銆?
婧愮爜錛?/p>
result = toBoolean(System.getProperty(name)); //褰撲笖浠呭綋浠ュ弬鏁板懡鍚嶇殑緋葷粺灞炴€у瓨鍦紝涓旂瓑浜?"true"
瀛楃涓叉椂錛屾墠榪斿洖 true錛?br />
嫻嬭瘯錛?/p>
1
/**
2
* 嫻嬭瘯Boolean綾籫etBoolean(String name)鏂規硶
3
* @author dood
4
* @version 1.0
5
* 鍒涘緩鏃墮棿錛?011-12-2
6
*/
7
public class BooleanTest {
8
9
public static void main(String[] args) {
10
Boolean bool = Boolean.valueOf(true);
11
System.setProperty("isTrue", "true");
12
System.out.println(bool.getBoolean("isTrue")); //true
13
}
14
}
15
浜嬪姟(Transaction)鏄闂茍鍙兘鏇存柊鏁版嵁搴撲腑鍚勭鏁版嵁欏圭殑涓€涓▼搴忔墽琛屽崟鍏?unit)銆備簨鍔¢€氬父鐢遍珮綰ф暟鎹簱鎿嶇旱璇█鎴栫紪紼嬭璦€錛堝SQL錛孋++鎴朖ava錛変功鍐欑殑鐢ㄦ埛紼嬪簭鐨勬墽琛屾墍寮曡搗錛屽茍鐢ㄥ艦濡俠egin transaction鍜宔nd transaction璇彞錛堟垨鍑芥暟璋冪敤錛夋潵鐣屽畾銆備簨鍔$敱浜嬪姟寮€濮?begin transaction)鍜屼簨鍔$粨鏉?end transaction)涔嬮棿鎵ц鐨勫叏浣撴搷浣滅粍鎴愩€?/span>
渚嬪錛氬湪鍏崇郴鏁版嵁搴撲腑錛屼竴涓簨鍔″彲浠ユ槸涓€鏉QL璇彞錛屼竴緇凷QL璇彞鎴栨暣涓▼搴忋€?/span>
浜嬪姟鏄仮澶嶅拰騫跺彂鎺у埗鐨勫熀鏈崟浣嶃€?/span>
浜嬪姟搴旇鍏鋒湁4涓睘鎬э細鍘熷瓙鎬с€佷竴鑷存€с€侀殧紱繪€с€佹寔緇€с€傝繖鍥涗釜灞炴€ч€氬父縐頒負ACID鐗規€с€?/span>
鍘熷瓙鎬э紙atomicity錛夈€備竴涓簨鍔℃槸涓€涓笉鍙垎鍓茬殑宸ヤ綔鍗曚綅錛屼簨鍔′腑鍖呮嫭鐨勮鎿嶄綔瑕佷箞閮藉仛錛岃涔堥兘涓嶅仛銆?/span>
涓€鑷存€э紙consistency錛夈€備簨鍔″繀欏繪槸浣挎暟鎹簱浠庝竴涓竴鑷存€х姸鎬佸彉鍒板彟涓€涓竴鑷存€х姸鎬併€備竴鑷存€т笌鍘熷瓙鎬ф槸瀵嗗垏鐩稿叧鐨勩€?/span>
闅旂鎬э紙isolation錛夈€備竴涓簨鍔$殑鎵ц涓嶈兘琚叾浠栦簨鍔″共鎵般€傚嵆涓€涓簨鍔″唴閮ㄧ殑鎿嶄綔鍙婁嬌鐢ㄧ殑鏁版嵁瀵瑰茍鍙戠殑鍏朵粬浜嬪姟鏄殧紱葷殑錛屽茍鍙戞墽琛岀殑鍚勪釜浜嬪姟涔嬮棿涓嶈兘浜掔浉騫叉壈銆?/span>
鎸佷箙鎬э紙durability錛夈€傛寔緇€т篃縐版案涔呮€э紙permanence錛夛紝鎸囦竴涓簨鍔′竴鏃︽彁浜わ紝瀹冨鏁版嵁搴撲腑鏁版嵁鐨勬敼鍙樺氨搴旇鏄案涔呮€х殑銆傛帴涓嬫潵鐨勫叾浠栨搷浣滄垨鏁呴殰涓嶅簲璇ュ鍏舵湁浠諱綍褰卞搷銆?/span>
銆€銆€銆€鎴戜負浠€涔堣浣跨敤浜嬪姟錛?榪欓噷鍐嶄婦涓緢淇楀緢淇楃殑渚嬪瓙錛?/span>
銆€銆€銆€銆€銆€鎴戝埌閾惰瀛橀挶錛屼簬鏄湁榪欎箞鍑犱釜姝ラ錛?
銆€銆€銆€銆€銆€銆€ 1銆佹妸閽變氦緇欏伐浣滀漢鍛橈紱2銆佸伐浣滀漢鍛樺~鍗曪紱3銆佸皢鍗曞瓙緇欐垜絳懼瓧錛?銆佸伐浣滀漢鍛樼‘璁ゅ茍杈撳叆鐢佃剳銆?/span>
銆€銆€銆€瑕佹槸錛岃鏄垜鎶婇挶浜ょ粰宸ヤ綔浜哄憳涔嬪悗錛岃繘琛屽埌3鎴戠瀛椾簡銆傞偅鍝ヤ滑紿佺劧蹇冭剰鐥呭彂浣滐紝over鎺変簡錛岄偅錛屾垜鐨勯挶榪樻病鏈夎緭鍏ョ數鑴戯紝浣嗘垜鍗翠氦浜嗛挶鍙堢瀛楃‘璁や簡錛岃€屽茍娌℃湁鍏朵粬浠諱綍璁板綍銆傛垜宀備笉鏄浜忔浜嗭紵錛燂紵鎴戠殑琛€姹楅挶鍟婏紒璧剁揣閫€緇欐垜錛侊紒
銆€銆€銆€浜庢槸錛屽湪鏁版嵁搴撻噷浜х敓浜嗚繖涔堜竴涓湳璇細浜嬪姟(Transaction)錛屼篃灝辨槸瑕佷箞鎴愬姛錛岃涔堝け璐ワ紝騫舵仮澶嶅師鐘躲€?br />
銆€銆€
銆€銆€銆€榪樻槸鍐欑▼搴忔妸錛?/span>
銆€銆€銆€Create Proc sp鎴戝幓瀛樻(@M Money , @iOperator Int)
銆€銆€銆€As
銆€銆€銆€Begin
銆€銆€銆€銆€Declare @i int
銆€銆€銆€銆€Begin Tran銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€--嬋€媧諱簨鍔?br />
銆€銆€銆€銆€銆€Exec @i=sp浜ら挶 @m,@iOperator
銆€銆€銆€銆€銆€if @i<>0銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€--榪欓噷涓€鑸敤緋葷粺閿欒鍙?@@Error銆?鎴戣繖閲屼負浜嗕婦渚嬪瓙娌℃湁鐢ㄥ埌銆傞渶瑕佹牴鎹疄闄呮儏鍐點€?br />
銆€銆€銆€銆€銆€begin
銆€銆€銆€銆€銆€銆€Rollback Tran銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€--鍥炴粴浜嬪姟
銆€銆€銆€銆€銆€銆€RaisError ('閾惰鐨勭獥鍙eお灝戜簡錛屾垜鎳掑緱鎺掗槦錛屼笉浜や簡錛侊細錛?', 16, 1) with Log銆€--璁板綍鏃ュ織
銆€銆€銆€銆€銆€銆€Return -1銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€--榪斿洖閿欒鍙?
銆€銆€銆€銆€銆€end
銆€銆€銆€銆€銆€Exec @i=sp濉崟 @m,@iOperator
銆€銆€銆€銆€銆€if @i<>0
銆€銆€銆€銆€銆€begin
銆€銆€銆€銆€銆€銆€Rollback Tran銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€--鍥炴粴浜嬪姟
銆€銆€銆€銆€銆€銆€RaisError ('閾惰鐨勫摜浠墦鍗版満鍑轟簡鐐規瘺鐥咃紝鎵撳嵃涓嶅嚭鍗曞瓙鏉ワ紝鎶婇挶閫€鍥炴潵緇欐垜鍚э紵錛?, 16, 1) with Log
銆€銆€銆€銆€銆€銆€Return -2銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€
銆€銆€銆€銆€銆€end
銆€銆€銆€銆€銆€Exec @i=sp絳懼瓧 @m
銆€銆€銆€銆€銆€if @i<>0
銆€銆€銆€銆€銆€begin
銆€銆€銆€銆€銆€銆€Rollback Tran銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€--鍥炴粴浜嬪姟
銆€銆€銆€銆€銆€銆€RaisError ('鎴?闈狅紵浠€涔堢儌閾惰錛屾崲浜?鏀瑪閮藉啓涓嶅嚭姘存潵錛侊紒鑰佸瓙涓嶅瓨浜嗭紒錛佷笉絳撅紒', 16, 1) with Log銆€
銆€銆€銆€銆€銆€銆€Return -3銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€
銆€銆€銆€銆€銆€end
銆€銆€銆€銆€銆€Exec @i=sp杈撳叆鐢佃剳 @m,@iOperator
銆€銆€銆€銆€銆€if @i<>0
銆€銆€銆€銆€銆€begin
銆€銆€銆€銆€銆€銆€Rollback Tran銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€--鍥炴粴浜嬪姟
銆€銆€銆€銆€銆€銆€RaisError ('浠€涔堟剰鎬濓紵紓佺洏絀洪棿宸叉弧錛熷ソ浜嗗ソ浜嗭紝鎶婇挶緇欐垜錛屾垜鍒版梺杈圭殑榪欏閾惰錛?, 16, 1) with Log銆€
銆€銆€銆€銆€銆€銆€Return -4銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€銆€
銆€銆€銆€銆€銆€end
銆€
銆€銆€銆€銆€Commit Tran銆€銆€銆€銆€銆€銆€銆€ --鎻愪氦浜嬪姟
銆€銆€銆€銆€Return 0
銆€銆€End
Blob 閲囩敤鍗曞瓧鑺傚瓨鍌紝閫傚悎淇濆瓨浜岃繘鍒舵暟鎹紝濡傚浘鐗囨枃浠躲€?br /> Clob 閲囩敤澶氬瓧鑺傚瓨鍌紝閫傚悎淇濆瓨澶у瀷鏂囨湰鏁版嵁銆?/font>
Oracle涓鐞咮LOB/CLOB瀛楁鐨勬柟寮忔瘮杈冪壒鍒紝鎵€浠ラ渶瑕佺壒鍒敞鎰忎笅闈袱鐐癸細
1. 鍦∣racle JDBC涓噰鐢ㄦ祦鏈哄埗瀵?BLOB/CLOB 榪涜璇誨啓鎿嶄綔錛屾墍浠ヨ娉ㄦ剰涓嶈兘鍦ㄦ壒澶勭悊涓鍐?BLOB/CLOB瀛楁錛屽惁鍒欏皢鍑虹幇
Stream type cannot be used in batching 寮傚父銆?/font>
2. Oracle BLOB/CLOB 瀛楁鏈韓鎷ユ湁涓€涓父鏍囷紙cursor錛夛紝JDBC閫氳繃娓告爣瀵笲lob/Clob瀛楁榪涜鎿嶄綔錛屽湪Blob/Clob瀛楁鍒涘緩涔嬪墠錛屾棤娉曡幏鍙栧叾娓告爣鍙ユ焺錛屼細鍑虹幇
Connection reset by peer: socket write error 寮傚父銆?/font>
姝g‘鐨勫仛娉曟槸錛氶鍏堝垱寤轟竴涓┖ Blob/Clob 瀛楁錛屽啀浠庤繖涓┖ Blob/Clob瀛楁鑾峰彇娓告爣錛屼緥濡備笅闈㈢殑浠g爜錛?/font>
PreparedStatement ps = conn.prepareStatement( " insert into PICTURE(image,resume) values(?,?) " );
// 閫氳繃oralce.sql.BLOB/CLOB.empty_lob()鏋勯€犵┖Blob/Clob瀵硅薄
ps.setBlob( 1 ,oracle.sql.BLOB.empty_lob());
ps.setClob( 2 ,oracle.sql.CLOB.empty_lob());
ps.excuteUpdate();
ps.close();
// 鍐嶆瀵硅鍑築lob/Clob鍙ユ焺
ps = conn.prepareStatement( " select image,resume from PICTURE where id=? for update " );
ps.setInt( 1 , 100 );
ResultSet rs = ps.executeQuery();
rs.next();
oracle.sql.BLOB imgBlob = (oracle.sql.BLOB)rs.getBlob( 1 );
oracle.sql.CLOB resClob = (oracle.sql.CLOB)rs.getClob( 2 );
// 灝嗕簩榪涘埗鏁版嵁鍐欏叆Blob
FileInputStream inStream = new FileInputStream( " c://image.jpg " );
OutputStream outStream = imgBlob.getBinaryOutputStream();
byte [] buf = new byte [ 10240 ];
int len;
while (len = inStream.read(buf) > 0 ) {
outStream.write(buf, 0 ,len);
}
inStream.close();
outStream.cloese();
// 灝嗗瓧絎︿覆鍐欏叆Clob
resClob.putString( 1 , " this is a clob " );
// 鍐嶅皢Blob/Clob瀛楁鏇存柊鍒版暟鎹簱
ps = conn.prepareStatement( " update PICTURE set image=? and resume=? where id=? " );
ps.setBlob( 1 ,imgBlob);
ps.setClob( 2 ,resClob);
ps.setInt( 3 , 100 );
ps.executeUpdate();
ps.close();