锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鐒跺悗鍦∣S閫氳繃浠誨姟綆$悊鍣ㄦ壘鍒板搴旂殑榪涚▼錛屽湪鏉姝昏繖涓繘紼?綰跨▼)
1> 閫氳繃姝よ鍙ユ煡璇㈡鍦ㄩ攣瀹氱殑SESSION_ID:
SELECT SESSION_ID FROM V$LOCKED_OBJECT,USER_OBJECTS WHERE V$LOCKED_OBJECT.OBJECT_ID = USER_OBJECTS.OBJECT_ID
2> 閫氳繃絎竴姝ユ煡璇㈠埌鐨凷ESSION_ID鏌ヨSERIAL#
SELECT SERIAL# FROM V$SESSION WHERE SID='12'(姝ゅ'12'涓轟笂闈㈡煡璇㈠埌鐨?/span>'SESSION_ID')
3> 鏍規嵁1,2姝ユ煡璇㈠埌鐨凷ESSION_ID鍜孲ERIAL#鎵ц
ALTER SYSTEM KILL SESSION '12,154'(12涓篠ESSION_ID鐨勫? 154涓篠ERIAL#鐨勫?
4> 濡傛灉鍒╃敤涓婇潰鐨勫懡浠ゆ潃姝諱竴涓繘紼嬪悗錛岃繘紼嬬姸鎬佽緗負"killed"錛屼絾鏄攣瀹氱殑璧勬簮寰堥暱鏃墮棿娌℃湁琚噴鏀撅紝閭d箞榪樺彲浠ュ湪os涓綰у啀鏉姝葷浉搴旂殑榪涚▼(綰跨▼)錛岄鍏堟墽琛屼笅闈㈢殑璇彞鑾峰緱褰撳墠榪涚▼(綰跨▼)鐨勬爣紺篜ID錛?br />
select spid, osuser, s.program
2from v$session s,v$process p
3where s.paddr=p.addr and s.sid=12 (12鏄笂闈㈢殑SESSION_ID)
]]>
鎴戦氳繃瀛樺偍榪囩▼鍍忔暟鎹簱涓壒閲忔坊鍔犱竴鍗冧竾(100000000)鏉¤褰?緇撴灉PL/SQL寰堥暱鏃墮棿娌℃湁鍙嶆槧錛岀粨鏋滀笉寰楀凡閫氳繃鑴氭湰鏉鎺夊綋鍓嶈繘紼嬶紝鎴戦噸鏂伴氳繃瀛樺偍榪囩▼鎻掑叆10000鏉℃暟鎹?br />
寤鴻〃鑴氭湰錛?br />
--鍒犻櫎鐢ㄦ埛琛?/span>
2DROP TABLE T_PORTAL_USER;
3
4--鍒涘緩鐢ㄦ埛琛?/span>
5CREATE TABLE T_PORTAL_USER
6(
7 id NUMBER PRIMARY KEY, -- 鐢ㄦ埛琛ㄧず
8 username VARCHAR2(24) NOT NULL,-- 鐢ㄦ埛鍚?/span>
9 password VARCHAR2(24) NOT NULL,-- 瀵嗙爜
10 realname VARCHAR2(24) NOT NULL,-- 鐪熷疄濮撳悕
11 sex VARCHAR2(2) DEFAULT '0',-- 鎬у埆 "0":Male "1":Female
12 registerDate TIMESTAMP NOT NULL,-- 娉ㄥ唽鏃ユ湡
13 state VARCHAR2(2) NOT NULL -- 璐﹀彿鐘舵?nbsp;"0":鍚敤 "1":娉ㄩ攢
14)
15
16--鍒犻櫎鐢ㄦ埛琛ㄥ簭鍒?/span>
17DROP SEQUENCE SEQ_T_PORTAL_USER;
18
19--鍒涘緩鐢ㄦ埛琛ㄥ簭鍒?/span>
20CREATE SEQUENCE SEQ_T_PORTAL_USER
21START WITH 1
22INCREMENT BY 1
23NOMAXVALUE
24CACHE 20
-- 鎵歸噺鏂板涓涓囨潯鐢ㄦ埛
-- 鎵歸噺鏂板涓涓囨潯鐢ㄦ埛
2CREATE OR REPLACE PROCEDURE PROC_USER_CREATE_BAT
3AS
4 startTime VARCHAR2(32);--寮濮嬫椂闂?/span>
5 endTime VARCHAR2(32);--緇撴潫鏃墮棿
6BEGIN
7 SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss:ff') INTO startTime FROM DUAL;
8 DBMS_OUTPUT.PUT_LINE('Start Time: '||startTime);
9 FOR i in 1..10000 LOOP
10 INSERT INTO T_PORTAL_USER VALUES(SEQ_T_PORTAL_USER.NEXTVAL,'owen'||i,'123456','gekunjin'||i,'0',sysdate,'0');
11 END LOOP;
12 SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss:ff') INTO endTime FROM DUAL;
13 DBMS_OUTPUT.PUT_LINE('End Time: '||endTime);
14END PROC_USER_CREATE_BAT;
]]>
]]>
浠ヤ笅杞歡嫻嬭瘯鐜涓篠pring,Struts1
1銆侀氳繃struts1鎻愪緵鐨勬彃浠舵満鍒訛紝閲囩敤Spring鎻愪緵鐨凜ontextLoaderPlugIn
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<global-exceptions />
<global-forwards />
<message-resources parameter="com.portal.ApplicationResources" />
<!-- 閫氳繃S1鎻愪緵鐨勬彃浠舵満鍒舵潵鍒濆鍖朣pring瀹瑰櫒錛屽姞杞絊pring閰嶇疆鏂囦歡
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<!--
1銆丆ontextLoaderPlugIn榛樿鍔犺澆閰嶇疆鏂囦歡鍛藉悕瑙勫垯鏄痑ctionServlet-servlet.xml,鍏朵腑actionServlet
鏄厤緗畂rg.apache.struts.action.ActionServlet鏃舵寚瀹氱殑servlet鍚嶇О
2銆侀氳繃閰嶇疆contextConfigLocation灞炴ф潵鎸囩偣Spring閰嶇疆鏂囦歡鐨勪綅緗?澶氫釜閰嶇疆鏂囦歡鍙互浣跨敤 閫楀彿","銆佸垎鍙?;"銆佺┖鏍? "
-->
<set-property property="contextConfigLocation"
value="/WEB-INF/conf/spring-application.xml,/WEB-INF/conf/**/spring*.xml" />
</plug-in>
-->
</struts-config>
2銆侀噰鐢⊿pring鎻愪緵鐨凜ontextLoaderListener鏉ュ垵濮嬪寲(搴旂敤鏈嶅姟鍣ㄩ渶瑕佹敮鎸丩istener,Servlet2.3鐗堟湰鍙婁互涓?
<context-param>
<description>閫氳繃閰嶇疆contextConfigLocation灞炴ф潵鎸囩偣Spring閰嶇疆鏂囦歡鐨勪綅緗?澶氫釜閰嶇疆鏂囦歡鍙互浣跨敤 閫楀彿","銆佸垎鍙?;"銆佺┖鏍? "</description>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/conf/spring-application.xml /WEB-INF/conf/**/spring*.xml</param-value>
</context-param>
<listener>
<description>閫氳繃ContextLocaderListener鏉ュ垵濮嬪寲Spring瀹瑰櫒錛屽姞杞絊pring閰嶇疆鏂囦歡</description>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3銆侀噰鐢╨oad-on-startup Servlet 鏉ュ垵濮嬪寲Spring瀹瑰櫒
<servlet>
<description>
閫氳繃load-on-startup Servlet鏉ュ垵濮嬪寲Spring瀹瑰櫒
璇ュ浣昐ervlet 鐢ㄤ簬鎻愪緵"鍚庡彴"鏈嶅姟錛屼綔涓哄鍣ㄧ鐞嗗簲鐢ㄤ腑鐨勫叾浠朾ean錛屼笉闇瑕佸搷搴斿鎴瘋姹傦紝鍥犳鏃犻』閰嶇疆servlet-mapping
</description>
<servlet-name>applicationContext</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
· 鍙墿灞曟э紞錛嶉泦緹ょ殑鎬ц兘涓嶉檺浜庡崟涓鐨勬湇鍔″疄浣擄紝鏂扮殑鏈嶅姟瀹炰綋鍙互鍔ㄦ佸湴鍔犲叆鍒伴泦緹わ紝浠庤屽寮洪泦緹ょ殑鎬ц兘銆?/p>
· 楂樺彲鐢ㄦэ紞錛嶉泦緹ら氳繃鏈嶅姟瀹炰綋鍐椾綑浣垮鎴風鍏嶄簬杞繪槗閬囧埌out of service鐨勮鍛娿傚湪闆嗙兢涓紝鍚屾牱鐨勬湇鍔″彲浠ョ敱澶氫釜鏈嶅姟瀹炰綋鎻愪緵銆傚鏋滀竴涓湇鍔″疄浣撳け璐ヤ簡錛屽彟涓涓湇鍔″疄浣撲細鎺ョ澶辮觸鐨勬湇鍔″疄浣撱傞泦緹ゆ彁渚涚殑浠庝竴涓嚭閿欑殑鏈嶅姟瀹炰綋鎭㈠鍒板彟涓涓湇鍔″疄浣撶殑鍔熻兘澧炲己浜嗗簲鐢ㄧ殑鍙敤鎬с?/p>
2. 涓ゅぇ鑳藉姏
涓轟簡鍏鋒湁鍙墿灞曟у拰楂樺彲鐢ㄦх壒鐐癸紝闆嗙兢鐨勫繀欏誨叿澶囦互涓嬩袱澶ц兘鍔涳細
· 璐熻澆鍧囪 錛嶏紞璐熻澆鍧囪 鑳芥妸浠誨姟姣旇緝鍧囪 鍦板垎甯冨埌闆嗙兢鐜涓嬬殑璁$畻鍜岀綉緇滆祫婧愩?/p>
· 閿欒鎭㈠錛嶏紞鐢變簬鏌愮鍘熷洜錛屾墽琛屾煇涓換鍔$殑璧勬簮鍑虹幇鏁呴殰錛屽彟涓鏈嶅姟瀹炰綋涓墽琛屽悓涓浠誨姟鐨勮祫婧愭帴鐫瀹屾垚浠誨姟銆傝繖縐嶇敱浜庝竴涓疄浣撲腑鐨勮祫婧愪笉鑳藉伐浣滐紝鍙︿竴涓疄浣撲腑鐨勮祫婧愰忔槑鐨勭戶緇畬鎴愪換鍔$殑榪囩▼鍙敊璇仮澶嶃?/p>
璐熻澆鍧囪 鍜岄敊璇仮澶嶉兘瑕佹眰鍚勬湇鍔″疄浣撲腑鏈夋墽琛屽悓涓浠誨姟鐨勮祫婧愬瓨鍦紝鑰屼笖瀵逛簬鍚屼竴浠誨姟鐨勫悇涓祫婧愭潵璇達紝鎵ц浠誨姟鎵闇鐨勪俊鎭鍥撅紙淇℃伅涓婁笅鏂囷級蹇呴』鏄竴鏍風殑銆?/p>
3. 涓ゅぇ鎶鏈?
瀹炵幇闆嗙兢鍔″繀瑕佹湁浠ヤ笅涓ゅぇ鎶鏈細
· 闆嗙兢鍦板潃錛嶏紞闆嗙兢鐢卞涓湇鍔″疄浣撶粍鎴愶紝闆嗙兢瀹㈡埛绔氳繃璁塊棶闆嗙兢鐨勯泦緹ゅ湴鍧鑾峰彇闆嗙兢鍐呴儴鍚勬湇鍔″疄浣撶殑鍔熻兘銆傚叿鏈夊崟涓闆嗙兢鍦板潃錛堜篃鍙崟涓褰卞儚錛夋槸闆嗙兢鐨勪竴涓熀鏈壒寰併傜淮鎶ら泦緹ゅ湴鍧鐨勮緗縐頒負璐熻澆鍧囪 鍣ㄣ傝礋杞藉潎琛″櫒鍐呴儴璐熻矗綆$悊鍚勪釜鏈嶅姟瀹炰綋鐨勫姞鍏ュ拰閫鍑猴紝澶栭儴璐熻矗闆嗙兢鍦板潃鍚戝唴閮ㄦ湇鍔″疄浣撳湴鍧鐨勮漿鎹€傛湁鐨勮礋杞藉潎琛″櫒瀹炵幇鐪熸鐨勮礋杞藉潎琛$畻娉曪紝鏈夌殑鍙敮鎸佷換鍔$殑杞崲銆傚彧瀹炵幇浠誨姟杞崲鐨勮礋杞藉潎琛″櫒閫傜敤浜庢敮鎸丄CTIVE-STANDBY鐨勯泦緹ょ幆澧冿紝鍦ㄩ偅閲岋紝闆嗙兢涓彧鏈変竴涓湇鍔″疄浣撳伐浣滐紝褰撴鍦ㄥ伐浣滅殑鏈嶅姟瀹炰綋鍙戠敓鏁呴殰鏃訛紝璐熻澆鍧囪 鍣ㄦ妸鍚庢潵鐨勪換鍔¤漿鍚戝彟澶栦竴涓湇鍔″疄浣撱?/p>
· 鍐呴儴閫氫俊錛嶏紞涓轟簡鑳藉崗鍚屽伐浣溿佸疄鐜拌礋杞藉潎琛″拰閿欒鎭㈠錛岄泦緹ゅ悇瀹炰綋闂村繀欏繪椂甯擱氫俊錛屾瘮濡傝礋杞藉潎琛″櫒瀵規湇鍔″疄浣撳績璺蟲祴璇曚俊鎭佹湇鍔″疄浣撻棿浠誨姟鎵ц涓婁笅鏂囦俊鎭殑閫氫俊銆?/p>
鍏鋒湁鍚屼竴涓泦緹ゅ湴鍧浣垮緱瀹㈡埛绔兘璁塊棶闆嗙兢鎻愪緵鐨勮綆楁湇鍔★紝涓涓泦緹ゅ湴鍧涓嬮殣钘忎簡鍚勪釜鏈嶅姟瀹炰綋鐨勫唴閮ㄥ湴鍧錛屼嬌寰楀鎴瘋姹傜殑璁$畻鏈嶅姟鑳藉湪鍚勪釜鏈嶅姟瀹炰綋涔嬮棿鍒嗗竷銆傚唴閮ㄩ氫俊鏄泦緹よ兘姝e父榪愯漿鐨勫熀紜錛屽畠浣垮緱闆嗙兢鍏鋒湁鍧囪 璐熻澆鍜岄敊璇仮澶嶇殑鑳藉姏銆?/p>
闆嗙兢鍒嗙被
Linux闆嗙兢涓昏鍒嗘垚涓夊ぇ綾? 楂樺彲鐢ㄩ泦緹わ紝 璐熻澆鍧囪 闆嗙兢錛岀瀛﹁綆楅泦緹?
楂樺彲鐢ㄩ泦緹? High Availability Cluster)
璐熻澆鍧囪 闆嗙兢(Load Balance Cluster)
縐戝璁$畻闆嗙兢(High Performance Computing Cluster)
================================================
鍏蜂綋鍖呮嫭錛?/p>
Linux High Availability 楂樺彲鐢ㄩ泦緹?nbsp;
(鏅氫袱鑺傜偣鍙屾満鐑錛屽鑺傜偣HA闆嗙兢錛孯AC, shared, share-nothing闆嗙兢絳?
Linux Load Balance 璐熻澆鍧囪 闆嗙兢
(LVS絳?...)
Linux High Performance Computing 楂樻ц兘縐戝璁$畻闆嗙兢
(Beowulf 綾婚泦緹?...)
鍒嗗竷寮忓瓨鍌?nbsp;
鍏朵粬綾籰inux闆嗙兢
(濡侽penmosix, rendering farm 絳?.)
璇︾粏浠嬬粛
1. 楂樺彲鐢ㄩ泦緹?High Availability Cluster)
甯歌鐨勫氨鏄?涓妭鐐瑰仛鎴愮殑HA闆嗙兢錛屾湁寰堝閫氫織鐨勪笉縐戝鐨勫悕縐幫紝姣斿"鍙屾満鐑", "鍙屾満浜掑", "鍙屾満".
楂樺彲鐢ㄩ泦緹よВ鍐崇殑鏄繚闅滅敤鎴風殑搴旂敤紼嬪簭鎸佺畫瀵瑰鎻愪緵鏈嶅姟鐨勮兘鍔涖?(璇鋒敞鎰忛珮鍙敤闆嗙兢鏃笉鏄敤鏉ヤ繚鎶や笟鍔℃暟鎹殑錛屼繚鎶ょ殑鏄敤鎴風殑涓氬姟紼嬪簭瀵瑰涓嶉棿鏂彁渚涙湇鍔★紝鎶婂洜杞歡/紜歡/浜轟負閫犳垚鐨勬晠闅滃涓氬姟鐨勫獎鍝嶉檷浣庡埌鏈灝忕▼搴?銆?/p>
2. 璐熻澆鍧囪 闆嗙兢(Load Balance Cluster)
璐熻澆鍧囪 緋葷粺錛氶泦緹や腑鎵鏈夌殑鑺傜偣閮藉浜庢椿鍔ㄧ姸鎬侊紝瀹冧滑鍒嗘憡緋葷粺鐨勫伐浣滆礋杞姐備竴鑸琖eb鏈嶅姟鍣ㄩ泦緹ゃ佹暟鎹簱闆嗙兢鍜屽簲鐢ㄦ湇鍔″櫒闆嗙兢閮藉睘浜庤繖縐嶇被鍨嬨?/p>
璐熻澆鍧囪 闆嗙兢涓鑸敤浜庣浉搴旂綉緇滆姹傜殑緗戦〉鏈嶅姟鍣紝鏁版嵁搴撴湇鍔″櫒銆傝繖縐嶉泦緹ゅ彲浠ュ湪鎺ュ埌璇鋒眰鏃訛紝媯鏌ユ帴鍙楄姹傝緝灝戯紝涓嶇箒蹇欑殑鏈嶅姟鍣紝騫舵妸璇鋒眰杞埌榪欎簺鏈嶅姟鍣ㄤ笂銆備粠媯鏌ュ叾浠栨湇鍔″櫒鐘舵佽繖涓鐐逛笂鐪嬶紝璐熻澆鍧囪 鍜屽閿欓泦緹ゅ緢鎺ヨ繎錛屼笉鍚屼箣澶勬槸鏁伴噺涓婃洿澶氥?/p>
3. 縐戝璁$畻闆嗙兢(High Performance Computing Cluster)
楂樻ц兘璁$畻(High Perfermance Computing)闆嗙兢錛岀畝縐癏PC闆嗙兢銆傝繖綾婚泦緹よ嚧鍔涗簬鎻愪緵鍗曚釜璁$畻鏈烘墍涓嶈兘鎻愪緵鐨勫己澶х殑璁$畻鑳藉姏銆?/p>
楂樻ц兘璁$畻鍒嗙被銆銆
銆楂樺悶鍚愯綆?High-throughput Computing)
銆銆鏈変竴綾婚珮鎬ц兘璁$畻錛屽彲浠ユ妸瀹冨垎鎴愯嫢騫插彲浠ュ茍琛岀殑瀛愪換鍔★紝鑰屼笖鍚勪釜瀛愪換鍔″郊姝ら棿娌℃湁浠涔堝叧鑱斻傝薄鍦ㄥ鎼滃澶栨槦浜猴紙 SETI@HOME -- Search for Extraterrestrial Intelligence at Home 錛夊氨鏄繖涓綾誨瀷搴旂敤銆傝繖涓欏圭洰鏄埄鐢↖nternet涓婄殑闂茬疆鐨勮綆楄祫婧愭潵鎼滃澶栨槦浜恒係ETI欏圭洰鐨勬湇鍔″櫒灝嗕竴緇勬暟鎹拰鏁版嵁妯″紡鍙戠粰Internet涓婂弬鍔燬ETI鐨勮綆楄妭鐐癸紝璁$畻鑺傜偣鍦ㄧ粰瀹氱殑鏁版嵁涓婄敤緇欏畾鐨勬ā寮忚繘琛屾悳绱紝鐒跺悗灝嗘悳绱㈢殑緇撴灉鍙戠粰鏈嶅姟鍣ㄣ傛湇鍔″櫒璐熻矗灝嗕粠鍚勪釜璁$畻鑺傜偣榪斿洖鐨勬暟鎹眹闆嗘垚瀹屾暣鐨勬暟鎹傚洜涓鴻繖縐嶇被鍨嬪簲鐢ㄧ殑涓涓叡鍚岀壒寰佹槸鍦ㄦ搗閲忔暟鎹笂鎼滅儲鏌愪簺妯″紡錛屾墍浠ユ妸榪欑被璁$畻縐頒負楂樺悶鍚愯綆椼傛墍璋撶殑Internet璁$畻閮藉睘浜庤繖涓綾匯傛寜鐓?Flynn鐨勫垎綾伙紝楂樺悶鍚愯綆楀睘浜嶴IMD錛圫ingle Instruction/Multiple Data錛夌殑鑼冪暣銆?/p>
鍒嗗竷璁$畻(Distributed Computing)
銆銆鍙︿竴綾昏綆楀垰濂藉拰楂樺悶鍚愯綆楃浉鍙嶏紝瀹冧滑铏界劧鍙互緇欏垎鎴愯嫢騫插茍琛岀殑瀛愪換鍔★紝浣嗘槸瀛愪換鍔¢棿鑱旂郴寰堢揣瀵嗭紝闇瑕佸ぇ閲忕殑鏁版嵁浜ゆ崲銆傛寜鐓lynn鐨勫垎綾伙紝鍒嗗竷寮忕殑楂樻ц兘璁$畻灞炰簬MIMD錛圡ultiple Instruction/Multiple Data錛夌殑鑼冪暣銆?/p>
4. 鍒嗗竷寮忥紙闆嗙兢錛変笌闆嗙兢鐨勮仈緋諱笌鍖哄埆
鍒嗗竷寮忔槸鎸囧皢涓嶅悓鐨勪笟鍔″垎甯冨湪涓嶅悓鐨勫湴鏂廣?
鑰岄泦緹ゆ寚鐨勬槸灝嗗嚑鍙版湇鍔″櫒闆嗕腑鍦ㄤ竴璧鳳紝瀹炵幇鍚屼竴涓氬姟銆?
鍒嗗竷寮忎腑鐨勬瘡涓涓妭鐐癸紝閮藉彲浠ュ仛闆嗙兢銆?
鑰岄泦緹ゅ茍涓嶄竴瀹氬氨鏄垎甯冨紡鐨勩?
涓句緥錛氬氨姣斿鏂版氮緗戯紝璁塊棶鐨勪漢澶氫簡錛屼粬鍙互鍋氫竴涓兢闆嗭紝鍓嶉潰鏀句竴涓搷搴旀湇鍔″櫒錛屽悗闈㈠嚑鍙版湇鍔″櫒瀹屾垚鍚屼竴涓氬姟錛屽鏋滄湁涓氬姟璁塊棶鐨勬椂鍊欙紝鍝嶅簲鏈嶅姟鍣ㄧ湅鍝彴鏈嶅姟鍣ㄧ殑璐熻澆涓嶆槸寰堥噸錛屽氨灝嗙粰鍝竴鍙板幓瀹屾垚銆?
鑰屽垎甯冨紡錛屼粠紿勬剰涓婄悊瑙o紝涔熻窡闆嗙兢宸笉澶氾紝 浣嗘槸瀹冪殑緇勭粐姣旇緝鏉炬暎錛屼笉鍍忛泦緹わ紝鏈変竴涓粍緇囨э紝涓鍙版湇鍔″櫒鍨簡錛屽叾瀹冪殑鏈嶅姟鍣ㄥ彲浠ラ《涓婃潵銆?
鍒嗗竷寮忕殑姣忎竴涓妭鐐癸紝閮藉畬鎴愪笉鍚岀殑涓氬姟錛屼竴涓妭鐐瑰灝浜嗭紝鍝繖涓笟鍔″氨涓嶅彲璁塊棶浜嗐?/p>
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛歨ttp://blog.csdn.net/tanghongru1983/archive/2009/04/28/4130356.aspx
娉ㄥ唽鏂規硶錛?br /> window -> preferences -> myeclipse -> subscription
Hibernate瀛︿範絎旇
1銆?/span>Hibernate鏍稿績綾諱笌鎺ュ彛
1-1.Configuration綾?/span>
Configuration綾繪槸Hibernate鐨勫叆鍙o紝瀹冭礋璐i厤緗拰鍚姩Hibernate,Hibernate妗嗘灦閫氳繃Configuration瀹炰緥鍔犺澆閰嶇疆鏂囦歡淇℃伅(hibernate.cfg.xml),鐒跺悗璇誨彇鎸囧畾瀵硅薄鍏崇郴鏄犲皠鏂囦歡(bean.hbm.xml)鐨勫唴瀹瑰茍鍒涘緩SessionFactory.
1-2.SessionFactory鎺ュ彛
SessionFactory鎺ュ彛璐熻矗鍒濆鍖?/span>Hibernate,涓涓?/span>SessionFactory瀹炰緥瀵瑰簲涓涓暟鎹瓨鍌ㄦ簮(涓鑸氨鏄寚涓涓暟鎹簱)銆傚簲鐢ㄧ▼搴忎粠SessionFactory涓幏寰?/span>Session瀹炰緥銆?/span>SessionFactory鍏鋒湁浠ヤ笅鐗圭偣錛?/span>
1) 綰跨▼瀹夊叏錛屽嵆鍚屼竴涓?/span> SessionFactory瀹炰緥鍙互琚簲鐢?/span> 鐨勫涓嚎紼嬪叡浜?/span>
2) 瀹冩槸閲嶉噺綰х殑 錛屽洜涓哄畠闇瑕佷竴涓緢澶х殑緙撳瓨錛岀敤鏉ュ瓨鏀鵑瀹氫箟鐨?/span>SQL璇彞浠ュ強鏄犲皠鍏冩暟鎹瓑銆?/span>
鎵浠ヨ 錛屽鏋滀竴涓簲鐢ㄧ▼搴忎腑鍙闂竴涓暟鎹簱 錛屽垯鍙渶瑕佸垱寤轟竴涓叏灞鐨?/span> SessionFactory瀹炰緥銆?/span>
1-3.Session 鎺ュ彛
Session鏄?/span>Hibernate涓簲鐢ㄦ渶棰戠箒鐨勬帴鍙c?/span>Session涔熻縐頒負鎸佷箙鍖栫鐞嗗櫒 錛屽畠璐熻矗綆$悊鎵鏈変笌鎸佷箙鍖栫浉鍏崇殑鎿嶄綔錛氬瀛樺偍銆佹洿鏂般佸垹闄ゅ拰鍔犺澆瀵硅薄絳夈?/span>Session鎺ュ彛鍏鋒湁浠ヤ笅鐗圭偣錛?/span>
1) 鍗曠嚎紼嬶紝闈炲叡浜殑瀵硅薄銆傜嚎紼嬩笉瀹夊叏錛屽湪璁捐杞歡鏋舵瀯鏃跺欙紝搴旇閬垮厤澶氫釜綰跨▼鍏變韓鍚屼竴涓?/span>session瀹炰緥銆?/span>
2) Session 瀹炰緥鏄交閲忕駭鐨勶紝瀹冪殑鍒涘緩鍜岄攢姣佷笉闇瑕佹秷鑰楀お澶氱殑璧勬簮銆傚彲浠ヤ負姣忎釜璇峰垎閰嶄竴涓?/span>Session瀹炰緥錛屽湪姣忔璇鋒眰榪囩▼姹囨誨強鏃跺垱寤哄拰閿姣?/span> Session瀹炰緥銆?/span>
3) Session鏈変竴涓紦瀛橈紝瀹冨瓨鏀懼綋鍓嶅伐浣滃崟鍏冨姞杞界殑瀵硅薄銆?/span>Session鐨勭紦瀛樿縐頒負Hibernate鐨勪竴綰х紦瀛樸?/span>
1-4.Transaction鎺ュ彛
Transaction鎺ュ彛鏄?/span> Hibernate妗嗘灦鐨勪簨鍔℃帴鍙c傚畠瀵瑰簳灞傜殑浜嬪姟鎺ュ彛鍋氫簡灝佽錛屽寘鎷細JDBC API鍜?/span>JTA.榪欐牱浣垮緱Hibernate搴旂敤鍙互閫氳繃涓鑷寸殑Transaction鎺ュ彛鏉ョ敵鏄庝簨鍔¤竟鐣岋紝榪欐湁鍔╀簬搴旂敤紼嬪簭鍐嶄笉鍚岀殑鐜鍜屽鍣ㄤ腑縐繪銆?/span>
1-5.Query鍜?/span>Criteria鎺ュ彛
瀹冧滑鏄?/span> Hibernate鐨勬煡璇㈡帴鍙o紝鐢ㄤ簬浠庢暟鎹瓨鍌ㄦ簮鏌ヨ瀵硅薄鍙婃帶鍒舵墽琛屾煡璇㈢殑榪囩▼銆?/span>Query鍖呰浜嗕竴涓?/span> HQL(Hibernate Query Language)錛涜?/span>Criteria鎺ュ彛瀹屽叏灝佽浜嗗熀鏈瓧絎︿覆褰㈠紡鐨勬煡璇㈣鍙ワ紝姣?/span>Query鏇村姞闈㈠悜瀵硅薄錛?/span>Criteria鎺ュ彛鎿呴暱浜庢墽琛屽姩鎬佹煡璇€?/span>
2銆?/span>Hibernate涓父鐢ㄧ殑浜嬪姟闅旂綰у埆
甯擱噺 |
鍊?/span> |
璇存槑 |
TRANSACTION_NONE |
0 |
涓嶆敮鎸佷簨鍔?/span> |
TRANSACTION_READ_UNCOMMITTED |
1 |
鎸囩ず鍙互鍙戠敓鑴忚錛?/span>dirty read錛夈佷笉鍙噸澶嶈鍜岃櫄璇伙紙phantom read錛夌殑甯擱噺銆傛綰у埆鍏佽琚煇涓浜嬪姟鏇存敼鐨勮鍦ㄥ凡鎻愪氦璇ヨ鎵鏈夋洿鏀逛箣鍓嶈鍙︿竴涓簨鍔¤鍙栵紙“鑴忚”錛夈傚鏋滄墍鏈夋洿鏀歸兘琚洖婊氾紝鍒欑浜屼釜浜嬪姟灝嗚幏鍙栨棤鏁堢殑琛屻?/span> |
TRANSACTION_READ_COMMITTED |
2 |
鎸囩ず涓嶅彲浠ュ彂鐢熻剰璇葷殑甯擱噺錛涗笉鍙噸澶嶈鍜岃櫄璇誨彲浠ュ彂鐢熴傛綰у埆鍙姝簨鍔¤鍙栧叾涓甫鏈夋湭鎻愪氦鏇存敼鐨勮銆?/span> |
TRANSACTION_REPEATABLE_READ |
4 |
鎸囩ず涓嶅彲浠ュ彂鐢熻剰璇誨拰涓嶅彲閲嶅璇葷殑甯擱噺錛涜櫄璇誨彲浠ュ彂鐢熴傛綰у埆紱佹浜嬪姟璇誨彇甯︽湁鏈彁浜ゆ洿鏀圭殑琛岋紝瀹冭繕紱佹榪欑鎯呭喌錛氫竴涓簨鍔¤鍙栨煇涓琛岋紝鑰屽彟涓涓簨鍔℃洿鏀硅琛岋紝絎竴涓簨鍔¢噸鏂拌鍙栬琛岋紝騫跺湪絎簩嬈¤鍙栨椂鑾峰緱涓嶅悓鐨勫鹼紙“涓嶅彲閲嶅璇?#8221;錛夈?/span> |
TRANSACTION_SERIALIZABLE |
8 |
鎸囩ず涓嶅彲浠ュ彂鐢熻剰璇匯佷笉鍙噸澶嶈鍜岃櫄璇葷殑甯擱噺銆傛綰у埆鍖呮嫭TRANSACTION_REPEATABLE_READ 涓姝㈢殑浜嬮」錛屽悓鏃惰繕紱佹鍑虹幇榪欑鎯呭喌錛氭煇涓浜嬪姟璇誨彇鎵鏈夋弧瓚?/span> WHERE 鏉′歡鐨勮錛屽彟涓涓簨鍔℃彃鍏ヤ竴涓弧瓚?/span> WHERE 鏉′歡鐨勮錛岀涓涓簨鍔¢噸鏂拌鍙栨弧瓚崇浉鍚屾潯浠剁殑琛岋紝騫跺湪絎簩嬈¤鍙栨椂鑾峰緱棰濆鐨?#8220;铏?#8221;琛屻?/span> |
3銆?/span>Hibernate涓疄渚嬬殑鐘舵?/span>
3-1錛氫復鏃剁姸鎬?/span>
璇ュ疄渚嬩粠鏈笌浠諱綍鎸佷箙鍖栦笂涓嬫枃鍏寵仈榪囥傚畠娌℃湁鎸佷箙鍖栨爣璇嗭紙鐩稿綋浜庝富閿鹼級錛屼復鏃剁姸鎬佷笅鐨勫璞℃湁濡備笅鐗瑰緛銆?/span>
1錛?span style="font: 7pt 'Times New Roman'"> 涓嶅浜?/span>Session緙撳瓨涓紝涔熷彲浠ヨ涓嶈浠諱綍涓涓?/span>Session鍏寵仈
2錛?span style="font: 7pt 'Times New Roman'"> 鍦ㄦ暟鎹簱涓病鏈夊搴旂殑璁板綍
鍦ㄤ互涓嬫儏鍐典笅錛?/span>Java瀵硅薄榪涘叆涓存椂鐘舵?/span>
1錛?nbsp;褰撻氳繃new璇彞鍒氬垱寤轟竴涓?/span>Java瀵硅薄錛屽畠澶勪簬涓存椂鐘舵侊紝姝ゆ椂涓嶅拰鏁版嵁搴撲腑鐨勪換浣曡褰曞搴斻?/span>
2錛?nbsp;Session鐨?/span>delete()鏂規硶鑳戒嬌涓涓寔涔呭寲鎴栦復鏃惰劚綆″璞¤漿鎹負涓存椂瀵硅薄銆傚浜庤劚綆″璞★紝delete()鏂規硶浠庢暟鎹簱涓垹闄や笌瀹冨搴旂殑璁板綍錛屽茍涓旀妸瀹冧粠Session緙撳瓨涓垹闄ゃ?/span>
3-2錛氭寔涔呭寲鐘舵?/span>
璇ュ疄渚嬬洰鍓嶄笌鏌愪釜鎸佷箙鍖栦笂涓嬫枃鏈夊叧鑱旓紝瀹冩嫢鏈夋寔涔呭寲鏍囪瘑錛堢浉褰撲簬涓婚敭鍊鹼級錛屽茍涓斿彲鑳藉湪鏁版嵁搴撴眹鎬繪湁涓涓搴旂殑琛屻傚浜庢煇涓涓壒瀹氱殑鎸佷箙鍖栦笂涓嬫枃錛?/span>Hibernate淇濊瘉鏍囪瘑涓?/span>Java鏍囪瘑錛堝叾鍊間唬琛ㄥ搴斿湪鍐呭瓨涓殑浣嶇疆錛夌瓑浠楓傛寔涔呭寲瀵硅薄鏈変互涓嬬壒寰併?/span>
1錛?nbsp;浣嶄簬涓涓?/span>Session瀹炰緥鐨勭紦瀛樹腑錛屼篃鍙互璇達紝鎸佷箙鍖栧璞℃繪槸琚竴涓?/span>Session瀹炰緥鍏寵仈銆?/span>
2錛?nbsp;鎸佷箙鍖栧璞″拰鏁版嵁搴撲腑鐨勭浉鍏寵褰曞搴斻?/span>
3錛?nbsp;Session鍦ㄦ竻鐞嗙紦瀛樻椂錛屼細鏍規嵁鎸佷箙鍖栧璞$殑灞炴у彉鍖栵紝鏉ュ悓姝ユ洿鏂版暟鎹簱銆?/span>
Session鐨勮澶氭柟娉曢兘鑳藉瑙﹀彂Java瀵硅薄榪涘叆鎸佷箙鍖栫姸鎬併?/span>
4錛?nbsp;Session鐨?/span>save()鐨勬柟娉曡兘澶熸妸涓存椂瀵硅薄杞彉鎴愭寔涔呭寲瀵硅薄銆?/span>
5錛?nbsp;Session鐨?/span>load()鎴?/span>get()鏂規硶榪斿洖鐨勫璞℃繪槸澶勪簬鎸佷箙鍖栫姸鎬併?/span>
6錛?nbsp;Query綾葷殑list()鏂規硶榪斿洖鐨?/span>list闆嗗悎涓瓨鏀劇殑閮芥槸鎸佷箙鍖栧璞°?/span>
7錛?nbsp;Session鐨?/span>update()銆?/span>saveOrUpdate()鍜?/span>lock()鏂規硶浣胯劚綆″璞¤漿鍙樹負鎸佷箙鍖栧璞°?/span>
褰撲竴涓寔涔呭寲瀵硅薄鍏寵仈涓涓復鏃跺璞℃椂錛屽湪鍏佽綰ц仈淇濆瓨鐨勬儏鍐典笅錛?/span>Session鍦ㄦ竻鐞嗙紦瀛樻椂浼氭妸榪欎釜涓存椂瀵硅薄涔熻漿鍙樻垚鎸佷箙鍖栧璞°?/span>Hibernate淇濊瘉鍦ㄥ悓涓涓?/span>Session瀹炰緥鐨勭紦瀛樹腑錛屾暟鎹簱琛ㄤ腑鐨勬瘡鏉¤褰曞彧瀵瑰簲鍞竴鐨勬寔涔呭寲瀵硅薄錛屼篃灝辨槸璇村湪涓涓?/span>Session閲?/span>load/get鍚屼竴涓?/span>OID寰楀埌 鐨勬槸鐩稿悓鐨勫璞°?/span>
3-3錛氳劚綆$姸鎬?/span>
瀹炰緥鏇劇粡涓庢煇涓寔涔呭寲涓婁笅鏂囧彂鐢熻繃鍏寵仈錛屼笉榪囬偅涓笂涓嬫枃琚叧闂簡錛屾垨鑰呰繖涓疄渚嬫槸琚簭鍒楀寲(serialize)鍒板彟澶栫殑榪涚▼銆傚畠鎷ユ湁鎸佷箙鍖栨爣璇嗭紝騫朵笖鍦ㄦ暟鎹簱涓彲鑳藉瓨鍦ㄤ竴涓搴旂殑琛屻傚浜庤劚綆$姸鎬佺殑瀹炰緥錛?/span>Hibernate涓嶄繚璇佷換浣曟寔涔呭寲鏍囪瘑鍜?/span>Java鏍囪瘑鐨勫叧緋匯?/span>
鑴辯瀵硅薄鍏鋒湁浠ヤ笅鐗瑰緛銆?/span>
1錛?span style="font: 7pt 'Times New Roman'"> 涓嶅啀浣嶄簬Session鐨勭紦瀛樹腑錛屼篃鍙互璇達紝鑴辯瀵硅薄涓嶈Session鍏寵仈銆?/span>
2錛?span style="font: 7pt 'Times New Roman'"> 鑴辯瀵硅薄鏄湁鎸佷箙鍖栧璞¤漿鍙樿繃鏉ョ殑錛屽洜姝ゅ湪鏁版嵁搴撲腑鍙兘榪樺瓨鍦ㄤ笌瀹冨搴旂殑璁板綍(鍓嶆彁鏉′歡鏄病鏈夊叾浠栫▼搴忓垹闄や簡榪欐潯璁板綍)銆?/span>
3錛?span style="font: 7pt 'Times New Roman'"> 鑴辯瀵硅薄涓庝復鏃跺璞$殑鐩稿悓鎸囧嚭鍦ㄤ簬涓よ呴兘涓嶈Session鍏寵仈錛屽洜姝?/span>Hibernate涓嶄細淇濊瘉浠栦滑灞炴у彉鍖栦笌鏁版嵁搴撲繚鎸佸悓姝ャ傝劚綆″璞′笌涓存椂瀵硅薄鐨勫尯鍒湪浜庡墠鑰呮槸鐢辨寔涔呭寲瀵硅薄杞彉榪囨潵鐨勶紝鍥犳鍙兘鍦ㄤ功搴撲腑榪樺瓨鍦ㄥ搴旂殑璁板綍錛岃屽悗鑰呭湪鏁版嵁搴撲腑鏄病鏈夊搴旂殑璁板綍鐨勩?/span>
Session鐨勪互涓嬫柟娉曚嬌鎸佷箙鍖栧璞¤漿鍙樻垚鑴辯瀵硅薄.
1) 褰撹皟鐢?/span>Session鐨?/span>close()鏂規硶鏃訛紝Session 鐨勭紦瀛樿娓呯┖錛岀紦瀛樹腑鐨勬墍鏈夋寔涔呭寲瀵硅薄閮藉彉涓鴻劚綆″璞★紝濡傛灉鍦ㄥ簲鐢ㄧ▼搴忎腑娌℃湁寮曠敤鍙橀噺寮曠敤榪欎簺鑴辯瀵硅薄錛屼粬浠氨浼氱粨鏉熺敓鍛藉懆鏈熴?/span>
2) Session鐨?/span>evict()鏂規硶鑳藉浠庣紦瀛樹腑鍒犻櫎涓涓寔涔呭寲瀵硅薄錛屼嬌瀹冨彉涓鴻劚綆$姸鎬侊紝褰?/span>Session鐨勭紦瀛樹腑淇濆瓨浜嗗ぇ閲忕殑鎸佷箙鍖栧璞℃椂錛屼細娑堣楄澶氬唴瀛樼┖闂達紝涓轟簡鎻愰珮鎬ц兘錛屽彲浠ヨ冭檻璋冪敤evict()鏂規硶錛屼粠緙撳瓨涓垹闄や竴浜涙寔涔呭寲瀵硅薄銆備絾鏄鏁版儏鍐典笅涓嶆帹鑽愪嬌鐢ㄨ鏂規硶錛岃屽簲璇ラ氳繃鏌ヨ璇█錛屾垨鑰呮樉紺虹殑瀵艱埅鏉ユ帶鍒跺璞″浘鐨勬繁搴︺?/span>
with rollup 銆?/span>with cube銆?/span>grouping CUBE 鍜?ROLLUP 涔嬮棿鐨勫尯鍒湪浜庯細 CUBE 鐢熸垚鐨勭粨鏋滈泦鏄劇ず浜嗘墍閫夊垪涓肩殑鎵鏈夌粍鍚堢殑鑱氬悎銆? ROLLUP 鐢熸垚鐨勭粨鏋滈泦鏄劇ず浜嗘墍閫夊垪涓肩殑鏌愪竴灞傛緇撴瀯鐨勮仛鍚堛? grouping: 褰撶敤 CUBE 鎴?ROLLUP 榪愮畻絎︽坊鍔犺鏃訛紝闄勫姞鐨勫垪杈撳嚭鍊間負1錛屽綋鎵娣誨姞鐨勮涓嶆槸鐢?CUBE 鎴?ROLLUP 浜х敓鏃訛紝闄勫姞鍒楀間負0銆? --渚嬪 DECLARE @T TABLE(鍚嶇О VARCHAR(1) , 鍑虹増鍟?VARCHAR(10), 浠鋒牸1 INT, 浠鋒牸2 INT) INSERT @T SELECT 'a', '鍖椾含', 11, 22 UNION ALL SELECT 'a', '鍥涘窛', 22, 33 UNION ALL SELECT 'b', '鍥涘窛', 12, 23 UNION ALL SELECT 'b', '鍖椾含', 10, 20 UNION ALL SELECT 'b', '鏄嗘槑', 20, 30 SELECT 鍚嶇О, 鍑虹増鍟? SUM(浠鋒牸1) AS 浠鋒牸1, SUM(浠鋒牸2) AS 浠鋒牸2, GROUPING(鍚嶇О) AS CHECK鍚嶇О, GROUPING(鍑虹増鍟? AS CHECK鍑虹増鍟? FROM @T GROUP BY 鍚嶇О,鍑虹増鍟?WITH CUBE /* 鍚嶇О 鍑虹増鍟? 浠鋒牸1 浠鋒牸2 CHECK鍚嶇О CHECK鍑虹増鍟? ---- ---------- ----------- ----------- ------- -------- a 鍖椾含 11 22 0 0 a 鍥涘窛 22 33 0 0 a NULL 33 55 0 1 b 鍖椾含 10 20 0 0 b 鏄嗘槑 20 30 0 0 b 鍥涘窛 12 23 0 0 b NULL 42 73 0 1 NULL NULL 75 128 1 1 NULL 鍖椾含 21 42 1 0 NULL 鏄嗘槑 20 30 1 0 NULL 鍥涘窛 34 56 1 0 錛堟墍褰卞搷鐨勮鏁頒負 11 琛岋級 */ --鍒嗘瀽 /*group by 涓ゅ垪錛氬悕縐版湁涓や釜綾誨埆A,B;鎵鏈夌敱CUBE榪愮畻鑰岀敓鎴愯鐨勬槸 鍚嶇О 鍑虹増鍟? 浠鋒牸1 浠鋒牸2 CHECK鍚嶇О CHECK鍑虹増鍟? ---- ---------- ----------- ----------- ------- -------- a NULL 33 55 0 1 b NULL 42 73 0 1 鍑虹増鍟嗘湁涓変釜綾誨埆錛屾墍鏈夌敱CUBE榪愮畻鑰岀敓鎴愯鐨勬槸 鍚嶇О 鍑虹増鍟? 浠鋒牸1 浠鋒牸2 CHECK鍚嶇О CHECK鍑虹増鍟? ---- ---------- ----------- ----------- ------- -------- NULL 鍖椾含 21 42 1 0 NULL 鏄嗘槑 20 30 1 0 NULL 鍥涘窛 34 56 1 0 浠ュ強 NULL NULL 75 128 1 1 */ SELECT 鍚嶇О, 鍑虹増鍟? SUM(浠鋒牸1) AS 浠鋒牸1, SUM(浠鋒牸2) AS 浠鋒牸2 FROM @T GROUP BY 鍚嶇О,鍑虹増鍟?WITH ROLLUP /* 鍚嶇О 鍑虹増鍟? 浠鋒牸1 浠鋒牸2 ---- ---------- ----------- ----------- a 鍖椾含 11 22 a 鍥涘窛 22 33 a NULL 33 55 b 鍖椾含 10 20 b 鏄嗘槑 20 30 b 鍥涘窛 12 23 b NULL 42 73 NULL NULL 75 128 */