锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
浣跨敤 hibernate 蹇竴騫翠簡錛屼竴鐩翠嬌鐢ㄥ緱姣旇緝鑲ゆ祬錛岀敋鑷蟲病鏈夋寮忎嬌鐢ㄨ繃瀵硅薄鍏崇郴銆傝繎孌墊椂闂存兂娣卞叆鐮旂┒涓涓嬶紝浠ヤ究鍦ㄩ」鐩腑鎺ㄥ箍錛屽噺灝戜笉蹇呰鐨勫璞$淮鎶ゅ拰緙栫▼銆傞棶棰樹笉鏈熻岄亣錛屽湪澶氬澶氬叧緋諱腑錛屽嚭鐜頒簡閫掕鍔犺澆鐨勭幇璞★紝渚嬪錛氱敤鎴峰拰瑙掕壊鐨勫叧緋伙紝涓涓敤鎴峰彲鑳芥湁澶氫釜瑙掕壊錛屼竴涓鑹蹭腑鍖呭惈澶氫釜鐢ㄦ埛銆傛垜鏄氳繃甯︽湁榪炴帴琛ㄧ殑澶氬澶氬叧緋誨疄鐜扮殑錛岀敤鎴峰拰瑙掕壊瀵硅薄涓兘緇存寔浜嗕竴涓?/span> Set 瀵硅薄錛岀敤浠ュ歡榪熷姞杞藉叧緋匯備絾鏄紝鍦ㄦ垜寤惰繜鍔犺澆鐢ㄦ埛鎷ユ湁鐨勮鑹叉椂錛岃鍔犺澆鐨勮鑹插張鍔犺澆瀹冩墍鍖呭惈鐨勭敤鎴鳳紝琚姞杞界殑鐢ㄦ埛鍙堝姞杞芥墍鎷ユ湁鐨勮鑹詫紝榪欐牱閫掕鍔犺澆涓嬪幓錛岀敱浜?/span> session 鐨勫叧闂細鎶涘嚭寮傚父瀵艱嚧紼嬪簭涓銆傚紑濮嬬櫨鎬濅笉寰楀叾瑙o紝鍦ㄤ粩緇嗘煡鐪嬫姏鍑虹殑寮傚父鍫嗘爤鏃訛紝緇堜簬鍙戠幇浜嗛棶棰樻墍鍦ㄣ備範鎯紒閿欒鐨勪範鎯傛垜浠墍浣跨敤鐨勬寔緇眰瀵硅薄浼氱戶鎵夸竴涓熀紜綾伙紝璇ョ被鈥滃疄鐜扳濅簡 hashCode 鍜?/span> equals 鏂規硶錛屼唬鐮佸涓嬶細
public boolean equals(Object o) { 聽聽聽 return EqualsBuilder.reflectionEquals(this, o); } public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); } |
hibernate 灝嗙敤鎴鋒墍鎷ユ湁鐨勮鑹插璞℃斁榪?/span> Set 涓紝瀹為檯 Set 浼氳皟鐢?/span> hashCode 鍜?/span> equals 鏉ュ垽鏂袱涓璞℃槸鍚︾浉絳夛紝榪欐牱闂灝辨潵浜嗭紝 HashCodeBuilder.reflectionHashCode(this) 鏂規硶浣跨敤鍙嶅皠璋冪敤瑙掕壊瀵硅薄鐨?/span> getUsers() 鏂規硶錛?/span> hibernate 鍙堝姞杞借鑹叉墍鍖呭惈鐨勭敤鎴鳳紝鑳芥病鏈夐棶棰樺悧錛熺戶鑰屾垜浠緱鍙嶆濅竴涓嬫寔緇眰瀵硅薄鏈夋病鏈夐氱敤鐨?/span> hashCode 鍜?/span> equals 鏂規硶銆?/span>
聽聽聽聽聽聽 鍙傝冦婃繁鍏ユ祬鍑?/span> Hibernate 銆嬪 hashCode 鍜?/span> equals 鏂規硶鐨勫鐞嗘湁涓ゅぇ縐嶏細
1銆?span style="FONT: 7pt 'Times New Roman'">聽 涓嶈鐩?/span>
闂錛氬疄浣撳璞$殑璺?/span>
session
璇嗗埆闂錛屾牴鏈湪浜?/span>
hashCode
榛樿璋冪敤
System.identityHashCode()
鏂規硶銆?/span>
2銆?span style="FONT: 7pt 'Times New Roman'">聽 瑕嗙洊
脴聽聽聽聽聽聽聽聽 浣跨敤瀵硅薄 pk
闂錛氭柊澧炲璞℃椂錛屾病鏈?/span> pk 錛岄偅涔堟墍鏈夌殑瀵硅薄閮界浉絳変簡錛屼篃灝辨槸鍙兘鍔犲叆鐨勪竴鏉°?/span>
脴聽聽聽聽聽聽聽聽 鍊兼瘮瀵癸紙瀵瑰疄浣撳璞$殑鎵鏈夊睘鎬у艱繘琛屾瘮瀵癸紝鍙互浣跨敤 Commonclipse 鑷姩鐢熸垚錛?/span>
闂錛氳繃浜庝弗鏍箋?/font>
脴聽聽聽聽聽聽聽聽 涓氬姟鍏抽敭淇℃伅鍒ゅ畾
鏄兼瘮瀵圭殑涓涓瓙闆嗭紝鍙仛涓氬姟鍏抽敭灞炴х殑姣斿銆?/font>
涓漢瑙夊緱涓氬姟鍏抽敭淇℃伅鍒ゅ畾鐨勬柟娉曟瘮杈冨悎鐞嗭紝浣跨敤 Commonclipse 鑷姩鐢熸垚鍊兼瘮瀵癸紝娉ㄦ剰涓ょ偣錛?/span>
1銆?span style="FONT: 7pt 'Times New Roman'">聽 鍘繪帀瀹炰綋鍏寵仈闆嗗悎灞炴х殑姣斿錛屼笉鐒跺張浼氬嚭鐜版垜涓婅堪鐨勨滈掕鍔犺澆鈥濈幇璞°?/span>
2銆?span style="FONT: 7pt 'Times New Roman'">聽
鑷姩鐢熸垚鐨?/span>
hashCode
鏂規硶鍘繪帀
appendSuper(super.hashCode())
錛岃嚜鍔ㄧ敓鎴愮殑
equals
鏂規硶鍘繪帀
appendSuper(super.equals(object))
錛屼笉鐒朵綘鐨勫璞℃瘮杈冨拰鍔犲叆
collection
閮芥湁闂鐨勶紝銆婃繁鍏ユ祬鍑?/span>
Hibernate
銆嬩功涓病鏈夊己璋冦?/span>
灝界Hibernate 3.0 涓嶩ibernate2.1鐨勬簮浠g爜鏄笉鍏煎鐨勶紝浣嗘槸褰揌ibernate寮鍙戝皬緇勫湪璁捐Hibernate3.0鏃訛紝涓虹畝鍖栧崌綰ibernate鐗堟湰浣滀簡鍛ㄥ埌鐨勮冭檻銆傚浜庣幇鏈夌殑鍩轟簬Hibernate2.1鐨凧ava欏圭洰錛屽彲浠ュ緢鏂逛究鐨勬妸瀹冨崌綰у埌Hibernate3.0銆?/font>
鏈枃鎻忚堪浜咹ibernate3.0鐗堟湰鐨勬柊鍙樺寲錛孒ibernate3.0鐗堟湰鐨勫彉鍖栧寘鎷笁涓柟闈細
錛?錛堿PI鐨勫彉鍖栵紝瀹冨皢褰卞搷鍒癑ava紼嬪簭浠g爜銆?br />錛?錛夊厓鏁版嵁錛屽畠灝嗗獎鍝嶅埌瀵硅薄-鍏崇郴鏄犲皠鏂囦歡銆?br />錛?錛塇QL鏌ヨ璇彞銆?/font>
鍊煎緱娉ㄦ剰鐨勬槸錛?Hibernate3.0騫朵笉浼氬畬鍏ㄥ彇浠ibernate2.1銆傚湪鍚屼竴涓簲鐢ㄧ▼搴忎腑錛屽厑璁窰ibernate3.0鍜孒ibernate2.1騫跺瓨銆?/font>
1.1 Hibernate API 鍙樺寲
1.1.1 鍖呭悕
Hibernate3.0鐨勫寘鐨勬牴璺緞涓? 鈥渙rg.hibernate鈥?錛岃屽湪Hibernate2.1涓負鈥渘et.sf.hibernate鈥濄傝繖涓鍛藉悕鍙樺寲浣垮緱Hibernate2.1鍜孒ibernate3.0鑳藉鍚屾椂鍦ㄥ悓涓涓簲鐢ㄧ▼搴忎腑榪愯銆?/font>
濡傛灉甯屾湜鎶婂凡鏈夌殑搴旂敤鍗囩駭鍒癏ibernate3.0錛岄偅涔堝崌綰х殑絎竴姝ユ槸鎶奐ava婧愮▼搴忎腑鐨勬墍鏈夆渘et.sf.hibernate鈥濇浛鎹負鈥渙rg.hibernate鈥濄?/font>
Hibernate2.1涓殑鈥渘et.sf.hibernate.expression鈥濆寘琚敼鍚嶄負鈥渙rg.hibernate.criterion鈥濄傚亣濡傚簲鐢ㄧ▼搴忎嬌鐢ㄤ簡Criteria API錛岄偅涔堝湪鍗囩駭鐨勮繃紼嬩腑錛屽繀欏繪妸Java婧愮▼搴忎腑鐨勬墍鏈夆渘et.sf.hibernate.expression鈥濇浛鎹負鈥渙rg.hibernate.criterion鈥濄?/font>
濡傛灉搴旂敤浣跨敤浜嗛櫎Hibernate浠ュ鐨勫叾浠栧閮ㄨ蔣浠訛紝鑰岃繖涓閮ㄨ蔣浠跺張寮曠敤浜咹ibernate鐨勬帴鍙o紝閭d箞鍦ㄥ崌綰ф椂蹇呴』鍗佸垎灝忓績銆備緥濡侲HCache鎷ユ湁鑷繁鐨凜acheProvider錛?net.sf.ehcache.hibernate.Provider錛屽湪榪欎釜綾諱腑寮曠敤浜咹ibernate2.1涓殑鎺ュ彛錛屽湪鍗囩駭搴旂敤鏃訛紝鍙互閲囩敤浠ヤ笅鍔炴硶涔嬩竴鏉ュ崌綰HCache:
錛?錛夋墜宸ヤ慨鏀筺et.sf.ehcache.hibernate.Provider綾伙紝浣垮畠寮曠敤Hibernate3.0涓殑鎺ュ彛銆?br />錛?錛夌瓑鍒癊HCache杞歡鏈韓鍗囩駭涓轟嬌鐢℉ibernate3.0鍚庯紝浣跨敤鏂扮殑EHCache杞歡銆?br />錛?錛変嬌鐢℉ibernate3.0涓唴緗殑CacheProvider錛歰rg.hibernate.cache.EhCacheProvider銆?/font>
1.1.2 org.hibernate.classic鍖?/font>
Hibernate3.0鎶婁竴浜涜搴熷純鐨勬帴鍙i兘杞Щ鍒皁rg.hibernate.classic涓?/font>
1.1.3 Hibernate鎵渚濊禆鐨勭涓夋柟杞歡鍖?/font>
鍦℉ibernate3.0鐨勮蔣浠跺寘鐨刲ib鐩綍涓嬬殑README.txt鏂囦歡涓紝鎻忚堪浜咹ibernate3.0鎵渚濊禆鐨勭涓夋柟杞歡鍖呯殑鍙樺寲銆?/font>
1.1.4 寮傚父妯″瀷
鍦℉ibernate3.0涓紝HibernateException寮傚父浠ュ強瀹冪殑鎵鏈夊瓙綾婚兘緇ф壙浜唈ava.lang.RuntimeException銆傚洜姝ゅ湪緙栬瘧鏃訛紝緙栬瘧鍣ㄤ笉浼氬啀媯鏌ibernateException銆?/font>
1.1.5 Session鎺ュ彛
鍦℉ibernate3.0涓紝鍘熸潵Hibernate2.1鐨凷ession鎺ュ彛涓殑鏈変簺鍩烘湰鏂規硶涔熻搴熷純錛屼絾涓轟簡綆鍖栧崌綰э紝榪欎簺鏂規硶渚濈劧鏄彲鐢ㄧ殑錛屽彲浠ラ氳繃org.hibernate.classic.Session瀛愭帴鍙f潵璁塊棶瀹冧滑錛屼緥濡傦細
org.hibernate.classic.Session session=sessionFactory.openSession();
session.delete("delete from Customer ");
鍦℉ibernate3.0涓紝org.hibernate.classic.Session鎺ュ彛緇ф壙浜唎rg.hibernate.Session鎺ュ彛錛屽湪org.hibernate.classic.Session鎺ュ彛涓寘鍚簡涓緋誨垪琚簾寮冪殑鏂規硶錛屽find()銆乮nterate()絳夈係essionFactory鎺ュ彛鐨刼penSession()鏂規硶榪斿洖org.hibernate.classic.Session綾誨瀷鐨勫疄渚嬨傚鏋滃笇鏈涘湪紼嬪簭涓畬鍏ㄤ嬌鐢℉ibernate3.0錛屽彲浠ラ噰鐢ㄤ互涓嬫柟寮忓垱寤篠ession瀹炰緥錛?/font>
org.hibernate.Session session=sessionFactory.openSession();
濡傛灉鏄宸叉湁鐨勭▼搴忚繘琛岀畝鍗曠殑鍗囩駭錛屽茍涓斿笇鏈涗粛鐒惰皟鐢℉ibernate2.1涓璖ession鐨勪竴浜涙帴鍙o紝鍙互閲囩敤浠ヤ笅鏂瑰紡鍒涘緩Session瀹炰緥錛?/font>
org.hibernate.classic.Session session=sessionFactory.openSession();
鍦℉ibernate3.0涓紝Session鎺ュ彛涓搴熷純鐨勬柟娉曞寘鎷細
* 鎵ц鏌ヨ鐨勬柟娉曪細find()銆乮terate()銆乫ilter()鍜宒elete(String hqlSelectQuery)
* saveOrUpdateCopy()
Hibernate3.0涓寰嬮噰鐢╟reateQuery()鏂規硶鏉ユ墽琛屾墍鏈夌殑鏌ヨ璇彞錛岄噰鐢―ELETE 鏌ヨ璇彞鏉ユ墽琛屾壒閲忓垹闄わ紝閲囩敤merge()鏂規硶鏉ユ浛浠?saveOrUpdateCopy()鏂規硶銆?
鎻愮ず錛氬湪Hibernate2.1涓紝Session鐨刣elete()鏂規硶鏈夊嚑縐嶉噸杞藉艦寮忥紝鍏朵腑鍙傛暟涓篐QL鏌ヨ璇彞鐨刣elete()鏂規硶鍦℉ibernate3.0涓搴熷純錛岃屽弬鏁頒負Ojbect綾誨瀷鐨勭殑delete()鏂規硶渚濈劧琚敮鎸併俤elete(Object o)鏂規硶鐢ㄤ簬鍒犻櫎鍙傛暟鎸囧畾鐨勫璞★紝璇ユ柟娉曟敮鎸佺駭鑱斿垹闄ゃ?
Hibernate2.1娌℃湁瀵規壒閲忔洿鏂板拰鎵歸噺鍒犻櫎鎻愪緵寰堝ソ鐨勬敮鎸侊紝鍙傝<<綺鵑欻ibernate>>涓涔︾殑絎?3绔犵殑13.1.1鑺傦紙鎵歸噺鏇存柊鍜屾壒閲忓垹闄わ級錛岃孒ibernate3.0瀵規壒閲忔洿鏂板拰鎵歸噺鍒犻櫎鎻愪緵浜嗘敮鎸侊紝鑳藉鐩存帴鎵ц鎵歸噺鏇存柊鎴栨壒閲忓垹闄よ鍙ワ紝鏃犻渶鎶婅鏇存柊鎴栧垹闄ょ殑瀵硅薄鍏堝姞杞藉埌鍐呭瓨涓備互涓嬫槸閫氳繃Hibernate3.0鎵ц鎵歸噺鏇存柊鐨勭▼搴忎唬鐮侊細
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
String hqlUpdate = "update Customer set name = :newName where name = :oldName";
int updatedEntities = s.createQuery( hqlUpdate )
.setString( "newName", newName )
.setString( "oldName", oldName )
.executeUpdate();
tx.commit();
session.close();
浠ヤ笅鏄氳繃Hibernate3.0鎵ц鎵歸噺鍒犻櫎鐨勭▼搴忎唬鐮侊細
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
String hqlDelete = "delete Customer where name = :oldName";
int deletedEntities = s.createQuery( hqlDelete )
.setString( "oldName", oldName )
.executeUpdate();
tx.commit();
session.close();
1.1.6 createSQLQuery()
鍦℉ibernate3.0涓紝Session鎺ュ彛鐨刢reateSQLQuery()鏂規硶琚簾寮冿紝琚Щ鍒皁rg.hibernate.classic.Session鎺ュ彛涓侶ibernate3.0閲囩敤鏂扮殑SQLQuery鎺ュ彛鏉ュ畬鎴愮浉鍚岀殑鍔熻兘銆?/font>
1.1.7 Lifecycle 鍜?Validatable 鎺ュ彛
Lifecycle鍜孷alidatable 鎺ュ彛琚簾寮冿紝騫朵笖琚Щ鍒皁rg.hibernate.classic鍖呬腑銆?/font>
1.1.8 Interceptor鎺ュ彛
鍦↖nterceptor 鎺ュ彛涓姞鍏ヤ簡涓や釜鏂扮殑鏂規硶銆?鐢ㄦ埛鍒涘緩鐨処nterceptor瀹炵幇綾誨湪鍗囩駭鐨勮繃紼嬩腑錛岄渶瑕佷負榪欎袱涓柊鏂規硶鎻愪緵鏂規硶浣撲負絀虹殑瀹炵幇銆傛澶栵紝instantiate()鏂規硶鐨勫弬鏁頒綔浜嗕慨鏀癸紝isUnsaved()鏂規硶琚敼鍚嶄負isTransient()銆?/font>
1.1.9 UserType鍜孋ompositeUserType鎺ュ彛
鍦║serType鍜孋ompositeUserType鎺ュ彛涓兘鍔犲叆浜嗕竴浜涙柊鐨勬柟娉曪紝榪欎袱涓帴鍙h縐誨埌org.hibernate.usertype鍖呬腑錛岀敤鎴峰畾涔夌殑UserType鍜孋ompositeUserType瀹炵幇綾誨繀欏誨疄鐜拌繖浜涙柊鏂規硶銆?
Hibernate3.0鎻愪緵浜哖arameterizedType鎺ュ彛錛岀敤浜庢洿濂界殑閲嶇敤鐢ㄦ埛鑷畾涔夌殑綾誨瀷銆?
1.1.10 FetchMode綾?/font>
FetchMode.LAZY 鍜?FetchMode.EAGER琚簾寮冦傚彇鑰屼唬涔嬬殑鍒嗗埆涓篎etchMode.SELECT 鍜孎etchMode.JOIN銆?/font>
1.1.11 PersistentEnum綾?/font>
PersistentEnum琚簾寮冨茍鍒犻櫎銆傚凡緇忓瓨鍦ㄧ殑搴旂敤搴旇閲囩敤UserType鏉ュ鐞嗘灇涓劇被鍨嬨?/font>
1.1.12 瀵笲lob 鍜孋lob鐨勬敮鎸?/font>
Hibernate瀵笲lob鍜孋lob瀹炰緥榪涜浜嗗寘瑁咃紝浣垮緱閭d簺鎷ユ湁Blob鎴朇lob綾誨瀷鐨勫睘鎬х殑綾葷殑瀹炰緥鍙互琚父紱匯佸簭鍒楀寲鎴栧弽搴忓垪鍖栵紝浠ュ強浼犻掑埌merge()鏂規硶涓?/font>
1.1.13 Hibernate涓緵鎵╁睍鐨凙PI鐨勫彉鍖?/font>
org.hibernate.criterion銆?org.hibernate.mapping銆?org.hibernate.persister鍜宱rg.hibernate.collection 鍖呯殑緇撴瀯鍜屽疄鐜板彂鐢熶簡閲嶅ぇ鐨勫彉鍖栥傚鏁板熀浜嶩ibernate
2.1 鐨勫簲鐢ㄤ笉渚濊禆浜庤繖浜涘寘錛屽洜姝や笉浼氳褰卞搷銆傚鏋滀綘鐨勫簲鐢ㄦ墿灞曚簡榪欎簺鍖呬腑鐨勭被錛岄偅涔堝繀欏婚潪甯稿皬蹇冪殑瀵瑰彈褰卞搷鐨勭▼搴忎唬鐮佽繘琛屽崌綰с?/font>
1.2 鍏冩暟鎹殑鍙樺寲
1.2.1 媯绱㈢瓥鐣?/font>
鍦℉ibernate2.1涓紝lazy灞炴х殑榛樿鍊間負鈥渇alse鈥濓紝鑰屽湪Hibernate3.0涓紝lazy灞炴х殑榛樿鍊間負鈥渢rue鈥濄傚湪鍗囩駭鏄犲皠鏂囦歡鏃訛紝濡傛灉鍘熸潵鐨勬槧灝勬枃浠朵腑鐨勬湁鍏沖厓绱狅紝濡?lt;set>銆?lt;class>絳夋病鏈夋樉寮忚緗甽azy灞炴э紝閭d箞蹇呴』鎶婂畠浠兘鏄懼紡鐨勮緗負lazy=鈥渢rue鈥濄傚鏋滆寰楄繖縐嶅崌綰ф柟寮忓緢楹葷儲錛屽彲浠ラ噰鍙栧彟涓綆鍗曠殑鍗囩駭鏂瑰紡錛氬湪<hibernate-mapping>鍏冪礌涓緗? default-lazy=鈥渇alse鈥濄?
1.2.2 瀵硅薄鏍囪瘑絎︾殑鏄犲皠
unsaved-value灞炴ф槸鍙夌殑錛屽湪澶氭暟鎯呭喌涓嬶紝Hibernate3.0灝嗘妸unsaved-value="0" 浣滀負榛樿鍊箋?/font>
鍦℉ibernate3.0涓紝褰撲嬌鐢ㄨ嚜鐒朵富閿拰娓哥瀵硅薄鏃訛紝涓嶅啀寮鴻揩瀹炵幇Interceptor.isUnsaved()鏂規硶銆?濡傛灉娌℃湁璁劇疆榪欎釜鏂規硶錛屽綋Hibernate3.0鏃犳硶鍖哄垎瀵硅薄鐨勭姸鎬佹椂錛屼細鏌ヨ鏁版嵁搴擄紝鏉ュ垽鏂繖涓璞″埌搴曟槸涓存椂瀵硅薄錛岃繕鏄父紱誨璞°備笉榪囷紝鏄懼紡鐨勪嬌鐢↖nterceptor.isUnsaved()鏂規硶浼氳幏寰楁洿濂界殑鎬ц兘錛屽洜涓鴻繖鍙互鍑忓皯Hibernate鐩存帴璁塊棶鏁版嵁搴撶殑嬈℃暟銆?/font>
1.2.3 闆嗗悎鏄犲皠
<index>鍏冪礌鍦ㄦ煇浜涙儏鍐典笅琚?lt;list-index>鍜?lt;map-key>鍏冪礌鏇夸唬銆傛澶栵紝Hibernate3.0鐢?lt;map-key-many-to-many> 鍏冪礌鏉ユ浛浠e師鏉ョ殑<key-many-to-many>.鍏冪礌錛岀敤<composite-map-key>鍏冪礌鏉ユ浛浠e師鏉ョ殑<composite-index>鍏冪礌銆?/font>
1.2.4 DTD
瀵硅薄-鍏崇郴鏄犲皠鏂囦歡涓殑DTD鏂囨。錛岀敱鍘熸潵鐨勶細
http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd
鏀逛負錛?br />
http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd
1.3 鏌ヨ璇彞鐨勫彉鍖?/font>
Hibernate3.0 閲囩敤鏂扮殑鍩轟簬ANTLR鐨凥QL/SQL鏌ヨ緲昏瘧鍣紝涓嶈繃錛孒ibernate2.1鐨勬煡璇㈢炕璇戝櫒涔熶緷鐒跺瓨鍦ㄣ傚湪Hibernate鐨勯厤緗枃浠朵腑錛宧ibernate.query.factory_class灞炴х敤鏉ラ夋嫨鏌ヨ緲昏瘧鍣ㄣ備緥濡傦細
錛?錛夐夋嫨Hibernate3.0鐨勬煡璇㈢炕璇戝櫒錛?br />hibernate.query.factory_class= org.hibernate.hql.ast.ASTQueryTranslatorFactory
錛?錛夐夋嫨Hibernate2.1鐨勬煡璇㈢炕璇戝櫒
hibernate.query.factory_class= org.hibernate.hql.classic.ClassicQueryTranslatorFactory
鎻愮ず錛欰NTLR鏄敤綰疛ava璇█緙栧啓鍑烘潵鐨勪竴涓紪璇戝伐鍏鳳紝瀹冨彲鐢熸垚Java璇█鎴栬呮槸C++鐨勮瘝娉曞拰璇硶鍒嗘瀽鍣紝騫跺彲浜х敓璇硶鍒嗘瀽鏍戝茍瀵硅鏍戣繘琛岄亶鍘嗐侫NTLR鐢變簬鏄函Java鐨勶紝鍥犳鍙互瀹夎鍦ㄤ換鎰忓鉤鍙頒笂錛屼絾鏄渶瑕丣DK鐨勬敮鎸併?
Hibernate寮鍙戝皬緇勫敖鍔涗繚璇丠ibernate3.0鐨勬煡璇㈢炕璇戝櫒鑳藉鏀寔Hibernate2.1鐨勬墍鏈夋煡璇㈣鍙ャ備笉榪囷紝瀵逛簬璁稿宸茬粡瀛樺湪鐨勫簲鐢紝鍦ㄥ崌綰ц繃紼嬩腑錛屼篃涓嶅Θ浠嶇劧浣跨敤Hibernate2.1鐨勬煡璇㈢炕璇戝櫒銆?br />鍊煎緱娉ㄦ剰鐨勬槸錛?Hibernate3.0鐨勬煡璇㈢炕璇戝櫒瀛樺湪涓涓狟ug錛氫笉鏀寔鏌愪簺theta-style榪炵粨鏌ヨ鏂硅█錛氬Oracle8i鐨凮racleDialect鏂硅█銆丼ybase11Dialect銆傝В鍐寵繖涓闂鐨勫姙娉曟湁涓ょ錛氾紙1錛夋敼涓轟嬌鐢ㄦ敮鎸丄NSI-style榪炵粨鏌ヨ鐨勬柟璦錛屽 Oracle9Dialect,錛?錛夊鏋滃崌綰х殑鏃跺欓亣鍒拌繖涓闂錛岄偅涔堣繕鏄敼涓轟嬌鐢℉ibernate2.1鐨勬煡璇㈢炕璇戝櫒銆?/font>
1.3.1 indices()鍜宔lements()鍑芥暟
鍦℉QL鐨剆elect瀛愬彞涓簾寮冧簡indices()鍜宔lements()鍑芥暟錛屽洜涓鴻繖涓や釜鍑芥暟鐨勮娉曞緢璁╃敤鎴瘋垂瑙o紝鍙互鐢ㄦ樉寮忕殑榪炴帴鏌ヨ璇彞鏉ユ浛浠?select elements(...) 銆傝屽湪HQL鐨剋here瀛愬彞涓紝浠嶇劧鍙互浣跨敤elements()鍑芥暟銆?/font>
聽
瀹炵幇鐨勫姛鑳?/span>
1 銆佸彲浠ヨ皟鏁存樉紺烘暟鎹殑浣嶇疆銆佸瓧浣撳拰澶у皬錛坈ertprint.css錛夛紱
2 銆佸彲浠ヨ緗儗鏅浘鐗囧拰鍥劇墖澶у皬錛?/span>
3 銆佸彲浠ヨ幏寰楁暟鎹皟鏁村悗鐨勪綅緗紙鏂逛究鏁版嵁搴撲繚瀛橈紝鏃犻渶姣忔閮借緗級錛?/span>
4 銆佸彲浠ヨ緗墦鍗板睘鎬э紙浠呴檺 IE 錛夛細 header/footer 銆佹í鍚?/span> / 綰靛悜銆佹墦鍗伴〉杈硅窛錛?/span>
5
銆佸彲浠ヨ法嫻忚鍣ㄤ嬌鐢紙闄ゆ墦鍗拌緗級錛?/span>
IE
銆?/span>
FireFox
銆?/span>
Netscape;
鎶鏈偣
1銆?span style="FONT: 7pt 'Times New Roman'">聽 鍏冪礌鎷栨嫿鎶鏈?/span> dragdrop.js 錛?/span>
2銆?span style="FONT: 7pt 'Times New Roman'">聽 瀵硅薄搴忓垪鍖?/span> json.js 錛?/span>
3銆?span style="FONT: 7pt 'Times New Roman'">聽 鎺у埗鎵撳嵃 ScriptX 錛?/span>
4銆?span style="FONT: 7pt 'Times New Roman'">聽 DHTML 錛?/span>
5銆?span style="FONT: 7pt 'Times New Roman'">聽
嫻忚鍣ㄥ吋瀹?/span>
w3c
錛?br />
浣跨敤鏂規硶
鍦ㄤ綘鐨勯」鐩腑寤虹珛涓涓被浼間簬
certprint.html
鐨勫姩鎬侀〉闈紝鍙傜収
toInit()
鏂規硶璁劇疆鎵撳嵃灞炴у拰闇瑕佹墦鍗版暟鎹紝鍦ㄦ墦鍗版暟鎹皟鏁村畬姣曞彲浠ヨ皟鐢?/span>
collectDataPos()
鑾峰緱璋冩暣鍚庣殑鏁版嵁浣嶇疆錛屽彲浠ヤ繚瀛樺埌鏁版嵁搴撱?br />
浠?span lang="EN-US">FCKeditor鐨勫畼鏂圭珯鐐?a >http://www.fckeditor.net/download涓婁笅杞紽CKeditor 2.3.2鍜孎CKeditor.Java錛屽叾涓璅CKeditor 2.3.2鏄簮鐮侊紝FCKeditor.Java鏄湪jsp涓嬌鐢ㄧ殑渚嬬▼銆?o:p>
灝?span lang="EN-US">FCKeditor 2.3.2瑙e帇鍒癋CKeditor鏂囦歡澶癸紝鐒跺悗鍒犻櫎濡備笅鏂囦歡鎴栫洰褰曪細
1銆?_samples錛?_testcases錛?o:p>
2銆佸垹闄?_documentation.html,_whatsnew.html,fckeditor.afp,fckeditor.asp,fckeditor.cfc,fckeditor.cfm,
fckeditor.lasso,fckeditor.php,fckeditor.pl,fckeditor.py
鍙墿涓媐ckconfig.js,fckeditor.js,fckstyles.xml,fcktemplates.xml,htaccess.txt,license.txt錛?o:p>
3銆?editor/_source錛?o:p>
4銆?editor/filemanager/browser/default/connectors錛?o:p>
5銆?editor/filemanager/upload錛?o:p>
6銆佽璦鍖?editor/lang涓彧鐣欎笅en.js銆亃h-cn.js錛?o:p>
鍝堝搱錛屼竴涓嬪瓙浠?span lang="EN-US">2.5M鐦﹀埌832K錛岀埥鍛錛佽繕鍙互鍦ㄧ毊鑲ゅ寘閲?editor/skins鍔ㄥ姩鑴戠瓔錛屾瘮濡傚彧鐣欎竴涓猻liver錛岃繖涓ソ閰嶈壊銆?o:p>
灝?span lang="EN-US">FCKeditor鐨刯sp涓嬌鐢ㄧ殑渚嬬▼鍜孎CKeditor婧愮爜緇撳悎璧鋒潵錛岃В鍘婩CKeditor.Java錛屽皢瑙e帇鏂囦歡澶逛腑web鐩綍涓嬬殑鎵鏈夋枃浠舵嫹璐濆埌FCKeditor鐩綍涓紝榪欐牱鍦‵CKeditor鐩綍澶氫簡涓や釜鐩綍錛?o:p>
鈹溾攢_samples
鈹?span lang="EN-US">聽 鈹?span style="mso-spacerun: yes">聽 index.jsp
鈹?span lang="EN-US">聽 鈹?span style="mso-spacerun: yes">聽 sample.css
鈹?span lang="EN-US">聽 鈹?span style="mso-spacerun: yes">聽 sampleslist.jsp
鈹?span lang="EN-US">聽 鈹?span style="mso-spacerun: yes">聽
鈹?span lang="EN-US">聽 鈹斺攢jsp
鈹?span lang="EN-US">聽聽聽聽聽聽聽聽聽 sample01.jsp
鈹?span lang="EN-US">聽聽聽聽聽聽聽聽聽 sample02.jsp
鈹?span lang="EN-US">聽聽聽聽聽聽聽聽聽 sample03.jsp
鈹?span lang="EN-US">聽聽聽聽聽聽聽聽聽 sample04.jsp
鈹?span lang="EN-US">聽聽聽聽聽聽聽聽聽 sample05.jsp
鈹?span lang="EN-US">聽聽聽聽聽聽聽聽聽 sample06.config.js
鈹?span lang="EN-US">聽聽聽聽聽聽聽聽聽 sample06.jsp
鈹?span lang="EN-US">聽聽聽聽聽聽聽聽聽 sample07.jsp
鈹?span lang="EN-US">聽聽聽聽聽聽聽聽聽 sampleposteddata.jsp
鈹?span lang="EN-US">聽聽聽聽聽聽聽聽聽
鈹斺攢WEB-INF
聽聽聽 鈹?span style="mso-spacerun: yes">聽 web.xml
聽聽聽 鈹?span style="mso-spacerun: yes">聽
聽聽聽 鈹斺攢lib
聽聽聽聽聽聽聽聽聽聽聽 FCKeditor-2.3.jar
聽聽聽聽聽聽聽聽聽聽聽 commons-fileupload.jar |
鐪嬩竴涓?span lang="EN-US">web.xml鏂囦歡錛岄噷闈㈠鍔犱簡鏂囦歡嫻忚鍜屾枃浠朵笂浼犲緱servlet銆?o:p>
l聽聽聽聽聽聽聽聽
淇敼鏂囦歡FCKeditor/fckconfig.js
1銆?span style="FONT: 7pt 'Times New Roman'">聽
淇敼灞炴?span lang="EN-US">
涓枃錛?span lang="EN-US">FCKConfig.DefaultLanguage聽聽聽聽 = 'zh-cn' ;
鐨偆錛?span lang="EN-US">FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;
2銆?span style="FONT: 7pt 'Times New Roman'">聽
浣跨敤servlet鍋氭枃浠舵祻瑙堝拰涓婁紶
鍙傝?span lang="EN-US">http://wiki.fckeditor.net/Developer%27s_Guide/Integration/Java
//browser
FCKConfig.LinkBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Connector=connectors/jsp/connector" ;
FCKConfig.ImageBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector" ;
FCKConfig.FlashBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector" ;
//upload
FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=File' ;
FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Flash' ;
FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Image' ; |
l聽聽聽聽聽聽聽聽
淇敼web.xml澧炲姞FCKeditor鐨則aglib
浠?span lang="EN-US">FCKeditor.Java瑙e帇鐩綍/src鐩綍涓嬫嫹璐滷CKeditor.tld鏂囦歡鍒癢EB-INF鐩綍涓嬶紝鍦╳eb.xml鏂囦歡涓鍔狅細
<taglib>
聽聽聽 <taglib-uri>/WEB-INF/FCKeditor.tld</taglib-uri>
聽聽聽 <taglib-location>/WEB-INF/FCKeditor.tld</taglib-location>
</taglib> |
鍦?/span> jsp 欏甸潰涓綔濡備笅璋冪敤錛堝叿浣撳浣曚嬌鐢ㄥ彲浠ョ湅 FCKeditor.tld瀹氫箟 錛夛細
...
<%@ taglib uri="/WEB-INF/FCKeditor.tld" prefix="FCK" %>
...
<FCK:editor id="EditorDefault" basePath="/FCKeditor/">
This is FCKeditor demo! </FCK:editor>
... |
灝嗘垜浠慨鏀逛簡鍗婂ぉ鐨勬暣涓?/span>
FCKeditor鐩綍鎷瘋礉鍒皌omcat5.0.28錛堟垨鍏朵粬web鏈嶅姟鍣級鐨剋ebapps鐩綍涓嬶紝鍚姩tomcat璁塊棶http://localhost:8080/FCKeditor/_samples/ 璇曠敤涓涓婩CKeditor 2.3.2鐨勫己澶у姛鑳斤紝鏈変簡demo鍦ㄩ」鐩腑濡備綍浣跨敤錛屼綘鑷繁鐞㈢(鍚э紒
渚嬬▼涓嬭澆錛?/span>
FCKeditor
l
聽聽聽聽聽聽聽聽
澶氳璁′竴涓〉闈紱
l
聽聽聽聽聽聽聽聽
鐢ㄦ埛澶氬鍔犱竴姝ユ搷浣滐紙鐗瑰埆鏄湪淇℃伅淇敼欏甸潰錛夛紱
l
聽聽聽聽聽聽聽聽
甯︽潵欏甸潰鍒鋒柊鐨勯噸澶嶆彁浜ょ殑闂錛?/span>
鎴戜滑鏀瑰彉涓涓嬫濊礬浼氬甫鏉ユ剰鎯充笉鍒扮殑鏁堟灉錛屽悓鏃朵篃瑙勯伩浜嗕互涓婇棶棰樸?/span>
鏂規硶涓
聽
1銆?/span>
聽
淇敼浣犵殑淇℃伅褰曞叆欏甸潰錛屽姞鍏ュ涓嬭剼鏈?/span>
鈥︹?/span>
<iframe name="tagFrame" style="display:none" frameborder="0"></iframe>
鈥︹?/span>
<script language="JavaScript">
<!--
//
淇濆瓨淇℃伅
function saveInfo() {
聽聽聽 testForm.action="test.do?method=save";聽
聽聽聽 testForm.target="tagFrame";
聽聽聽 testForm.submit();
}
//-->
</script>
|
2銆?/span>
聽
淇敼浣犵殑鎻愮ず欏甸潰
<%@ page contentType="text/html; charset=GBK" %>
<script language="javascript">
聽聽聽 alert("
淇濆瓨鎴愬姛錛?/span>
");
聽聽聽 //
榪欓噷鏄瓑寰呬綘鐐瑰嚮
alert
鐨勭‘瀹氭寜閽悗璺寵漿錛岀濂囩殑
js
聽聽聽 parent.window.location.href='test.do?method=test';
</script>
|
綆鍗曟敼涓涓嬪氨
jsp
鏀惰幏榪樹笉灝忋?/span>
鏂規硶浜?/span>
聽
璁゛ction榪斿洖javascript瀹屾垚鎻愮ず鍜岃煩杞細
public ActionForward execute(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
聽聽聽聽聽聽聽聽聽聽聽 HttpServletResponse response) throws Exception {
銆傘傘?/span>
//
鍙戦佺殑淇℃伅
聽聽聽聽聽聽聽 String msg = "alert('
鎿嶄綔鎴愬姛錛?/span>
');location.href='test.do?method=test';";
聽聽聽聽聽聽聽 writeJsToFrontPage(response, msg);
聽聽聽聽聽聽聽 return null;
}
protected void writeJsToFrontPage(HttpServletResponse response,
String msg) throws IOException {
聽聽聽聽聽聽聽 response.setContentType("text/html; charset=utf-8");
聽聽聽聽聽聽聽 response.setHeader("Cache-Control", "no-cache");
聽聽聽聽聽聽聽 PrintWriter pw = response.getWriter();
聽聽聽聽聽聽聽 pw.write("<SCRIPT TYPE='text/javascript'>" + msg + "</SCRIPT>");
聽聽聽聽聽聽聽 pw.close();
聽聽聽 } |
1銆佲?鈥濅負閫氶厤絎︼紝琛ㄧず浠諱綍涓涓瓧絎︼紝渚嬪錛氣渁.c鈥濆彲浠ュ尮閰嶁渁nc鈥濄佲渁bc鈥濄佲渁cc鈥濓紱
2銆佲淸]鈥濓紝鍦╗]鍐呭彲浠ユ寚瀹氳姹傚尮閰嶇殑瀛楃錛屼緥濡傦細鈥渁[nbc]c鈥濆彲浠ュ尮閰嶁渁nc鈥濄佲渁bc鈥濄佲渁cc鈥濓紱浣嗕笉鍙互鍖歸厤鈥渁ncc鈥?a鍒皕鍙互鍐欐垚[a-z],0鍒?鍙互鍐欐垚[0-9];
3銆佹暟閲忛檺瀹氱鍙鳳紝琛ㄧず鍖歸厤嬈℃暟錛堟垨鑰呭彨鍋氶暱搴︼級鐨勭鍙鳳細
鍖呮嫭錛氣?鈥濃斺?嬈℃垨鑰呭嬈?br />聽聽聽聽聽 鈥?鈥濃斺?嬈℃垨鑰呭嬈?br />聽聽聽聽聽 鈥?鈥濃斺?嬈℃垨鑰?嬈?br />聽聽聽聽聽 鈥渰n}鈥濃斺斿尮閰峮嬈★紝n涓烘暣鏁?br />聽聽聽聽聽 鈥渰n,m}鈥濃斺斿尮閰嶄粠n鍒癿涔嬮棿鐨勬煇涓暟鐨勬鏁幫紱n鍜宮閮芥槸鏁存暟錛?br />聽聽聽聽聽 鈥渰n,}鈥濃斺斿尮閰峮鍒版棤絀鋒涔嬮棿浠繪剰嬈℃暟錛?br />聽聽聽聽聽 鈥渰,m}鈥濃斺斿尮閰?鍒癿涔嬮棿浠繪剰嬈℃暟錛?br />浠栦滑鏀懼埌鍖歸厤鏍煎紡鐨勫悗闈細
渚嬪錛?br />鐢佃瘽鍙風爜錛?24錛?4820482錛?2484820482(鍋囪鍓嶉潰3鎴栬?浣嶏紝鍚庨潰7鎴栬?浣嶏紝騫朵笖涓棿鐨勫噺鍙峰彲鏈夊彲鏃?
閮芥槸絎﹀悎瑙勫畾鐨勶紝閭d箞鍙互鐢ㄥ涓嬫牸寮忔潵鍖歸厤錛歔0-9]{3,4} \-? [0-9]{7,8}錛?br />娉ㄦ剰錛氣淺鈥濅負杞箟瀛楃錛屽洜涓衡?鈥濆湪姝e垯琛ㄨ揪寮忕敤鏈変唬琛ㄤ竴涓寖鍥寸殑鎰忎箟錛屼緥濡傦細鍓嶉潰鎵璇寸殑[0-9]錛?/font>
鎵浠ュ畠闇瑕佽漿涔夊瓧絎︹淺鈥濊繘琛岃漿涔夋墠鍙嬌鐢紱
4銆佲淾鈥濅負鍚︾鍙鳳紝琛ㄧず涓嶆兂鍖歸厤鐨勭鍙鳳紝渚嬪錛歔^z][a-z]+鍙互鍖歸厤鎵鏈夐櫎鈥渮鈥濆紑澶寸殑浠ュ鐨勬墍鏈夊瓧
絎︿覆錛堥暱搴﹀ぇ浜?錛屽洜涓衡?鈥濊〃紺哄ぇ浜庣瓑浜?鐨勬鏁幫紝浠庣浜屼綅寮濮嬮兘鏄皬鍐欒嫳鏂囧瓧絎︼級錛?br />濡傛灉^鏀懼埌[]鐨勫杈瑰垯琛ㄧず浠]寮澶寸殑瀛楃涓詫紱^[az][a-z]+琛ㄧずa鎴栬厇寮澶寸殑闀垮害澶т簬絳変簬2鐨勮嫳鏂囧瓧絎?/font>
涓詫紱
5銆佲渱鈥濇垨榪愮畻絎︼紝渚嬪錛歛[n|bc|cb]c鍙互鍖歸厤鈥渁bcc鈥?鈥渁nc鈥?鈥渁cbc鈥濓紱
6銆佲?鈥濅互瀹冨墠闈㈢殑瀛楃緇撳熬鐨勶紱渚嬪錛歛b+$灝卞彲浠ヨ鈥渁bb鈥濓紝鈥渁b鈥濆尮閰嶏紱
7銆佷竴浜涚畝鍗曡〃紺烘柟娉曪細
\d琛ㄧず[0-9];\D琛ㄧず[^0-9];\w琛ㄧず[A-Z0-9];\W琛ㄧず[^A-Z0-9];\s琛ㄧず[\t\n\r\f],灝辨槸絀烘牸瀛楃鍖呮嫭tab
錛岀┖鏍肩瓑絳?\S琛ㄧず[^\t\n\r\f]錛屽氨鏄潪絀烘牸瀛楃;
8銆佸父鐢ㄧ殑鍖歸厤錛?br />鍖歸厤涓枃瀛楃錛?鈥淸\u4e00-\u9fa5]鈥濓紱
鍖歸厤鍙屽瓧鑺傚瓧絎?鍖呮嫭姹夊瓧鍦ㄥ唴)錛氣淸^\x00-\xff]鈥濓紱
鍖歸厤絀鴻鐨勬鍒欒〃杈懼紡錛氣淺n[\s| ]*\r鈥濓紱
鍖歸厤HTML鏍囪鐨勬鍒欒〃杈懼紡錛氣?<(.*)>.*<\/\1>|<(.*) \/>/鈥濓紱
鍖歸厤棣栧熬絀烘牸鐨勬鍒欒〃杈懼紡錛氣?^\s*)|(\s*$)鈥濓紱
鍖歸厤闈炶礋鏁存暟錛堟鏁存暟 + 0錛夛細鈥淾\d+$鈥濓紱銆銆
鍖歸厤姝f暣鏁幫細鈥淾[0-9]*[1-9][0-9]*$鈥濓紱
鍖歸厤闈炴鏁存暟錛堣礋鏁存暟 + 0錛夛細鈥淾((-\d+)|(0+))$鈥濓紱
鍖歸厤璐熸暣鏁幫細鈥淾-[0-9]*[1-9][0-9]*$鈥濓紱
鍖歸厤鏁存暟錛氣淾-?\d+$鈥濓紱
鍖歸厤闈炶礋嫻偣鏁幫紙姝f誕鐐規暟 + 0錛夛細鈥淾\d+(\.\d+)?$鈥?br />鍖歸厤姝f誕鐐規暟錛氣淾(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*
))$鈥濓紱
^((-\d+(\.\d+)?)|(0+(\.0+)?))$銆銆//鍖歸厤闈炴嫻偣鏁幫紙璐熸誕鐐規暟 + 0錛?
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$銆銆//鍖歸厤
璐熸誕鐐規暟
鍖歸厤嫻偣鏁幫細鈥淾(-?\d+)(\.\d+)?$鈥濓紱
鍖歸厤鐢辨暟瀛椼?6涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎緇勬垚鐨勫瓧絎︿覆錛氣淾\w+$鈥濓紱
鍖歸厤email鍦板潃錛氣淾[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$鈥濓紱
鍖歸厤url錛氣淾[a-zA-z]+://鍖歸厤(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$鈥?br />
涓嬮潰鏄鍒欒〃杈懼紡涓殑涓浜涘父鐢ㄦā寮忋?/font>
/pattern/聽 緇撴灉聽
. 鍖歸厤闄ゆ崲琛岀浠ュ鐨勬墍鏈夊瓧絎?
x? 鍖歸厤 0 嬈℃垨涓嬈?x 瀛楃涓?
x* 鍖歸厤 0 嬈℃垨澶氭 x 瀛楃涓詫紝浣嗗尮閰嶅彲鑳界殑鏈灝戞鏁?
x+ 鍖歸厤 1 嬈℃垨澶氭 x 瀛楃涓詫紝浣嗗尮閰嶅彲鑳界殑鏈灝戞鏁?
.* 鍖歸厤 0 嬈℃垨涓嬈$殑浠諱綍瀛楃
.+ 鍖歸厤 1 嬈℃垨澶氭鐨勪換浣曞瓧絎?
{m} 鍖歸厤鍒氬ソ鏄?m 涓?鐨勬寚瀹氬瓧絎︿覆
{m,n} 鍖歸厤鍦?m涓?浠ヤ笂 n涓?浠ヤ笅 鐨勬寚瀹氬瓧絎︿覆
{m,} 鍖歸厤 m涓?浠ヤ笂 鐨勬寚瀹氬瓧絎︿覆
[] 鍖歸厤絎﹀悎 [] 鍐呯殑瀛楃
[^] 鍖歸厤涓嶇鍚?[] 鍐呯殑瀛楃
[0-9] 鍖歸厤鎵鏈夋暟瀛楀瓧絎?
[a-z] 鍖歸厤鎵鏈夊皬鍐欏瓧姣嶅瓧絎?
[^0-9] 鍖歸厤鎵鏈夐潪鏁板瓧瀛楃
[^a-z] 鍖歸厤鎵鏈夐潪灝忓啓瀛楁瘝瀛楃
^ 鍖歸厤瀛楃寮澶寸殑瀛楃
$ 鍖歸厤瀛楃緇撳熬鐨勫瓧絎?
\d 鍖歸厤涓涓暟瀛楃殑瀛楃錛屽拰 [0-9] 璇硶涓鏍?
\d+ 鍖歸厤澶氫釜鏁板瓧瀛楃涓詫紝鍜?[0-9]+ 璇硶涓鏍?
\D 闈炴暟瀛楋紝鍏朵粬鍚?\d
\D+ 闈炴暟瀛楋紝鍏朵粬鍚?\d+
\w 鑻辨枃瀛楁瘝鎴栨暟瀛楃殑瀛楃涓詫紝鍜?[a-zA-Z0-9] 璇硶涓鏍?
\w+ 鍜?[a-zA-Z0-9]+ 璇硶涓鏍?
\W 闈炶嫳鏂囧瓧姣嶆垨鏁板瓧鐨勫瓧絎︿覆錛屽拰 [^a-zA-Z0-9] 璇硶涓鏍?
\W+ 鍜?[^a-zA-Z0-9]+ 璇硶涓鏍?
\s 絀烘牸錛屽拰 [\n\t\r\f] 璇硶涓鏍?
\s+ 鍜?[\n\t\r\f]+ 涓鏍?
\S 闈炵┖鏍鹼紝鍜?[^\n\t\r\f] 璇硶涓鏍?
\S+ 鍜?[^\n\t\r\f]+ 璇硶涓鏍?
\b 鍖歸厤浠ヨ嫳鏂囧瓧姣?鏁板瓧涓鴻竟鐣岀殑瀛楃涓?
\B 鍖歸厤涓嶄互鑻辨枃瀛楁瘝,鏁板間負杈圭晫鐨勫瓧絎︿覆
a|b|c 鍖歸厤絎﹀悎a瀛楃 鎴栨槸b瀛楃 鎴栨槸c瀛楃 鐨勫瓧絎︿覆
abc 鍖歸厤鍚湁 abc 鐨勫瓧絎︿覆
(pattern) () 榪欎釜絎﹀彿浼氳浣忔墍鎵懼鍒扮殑瀛楃涓詫紝鏄竴涓緢瀹炵敤鐨勮娉曘傜涓涓?() 鍐呮墍鎵懼埌鐨勫瓧絎︿覆
鍙樻垚 $1 榪欎釜鍙橀噺鎴栨槸 \1 鍙橀噺錛岀浜屼釜 () 鍐呮墍鎵懼埌鐨勫瓧絎︿覆鍙樻垚 $2 榪欎釜鍙橀噺鎴栨槸 \2 鍙橀噺錛屼互姝?br />綾繪帹涓嬪幓銆偮?
/pattern/i i 榪欎釜鍙傛暟琛ㄧず蹇界暐鑻辨枃澶у皬鍐欙紝涔熷氨鏄湪鍖歸厤瀛楃涓茬殑鏃跺欙紝涓嶈冭檻鑻辨枃鐨勫ぇ灝忓啓闂銆?
\ 濡傛灉瑕佸湪 pattern 妯″紡涓壘瀵諱竴涓壒孌婂瓧絎︼紝濡?"*"錛屽垯瑕佸湪榪欎釜瀛楃鍓嶅姞涓?\ 絎﹀彿錛岃繖鏍鋒墠浼氳鐗規畩
瀛楃澶辨晥
3銆佹鍒欒〃杈懼紡鐨勫叓澶у師鍒?br />銆銆濡傛灉鍦?Unix 涓浘緇忎嬌鐢ㄨ繃 sed銆乤wk銆乬rep 榪欎簺鍛戒護鐨勮瘽錛岀浉淇″浜庢鍒欒〃杈懼紡(Regular Expression)
涓嶄細鎰熷埌闄岀敓銆備笅闈㈢粰澶у浠嬬粛鍑犳潯姝e垯琛ㄨ揪寮忎嬌鐢ㄨ繃紼嬩腑鐨?8 澶у師鍒欍?
姝e垯琛ㄨ揪寮忓湪瀵逛粯鏁版嵁鐨勬垬鏂椾腑鍙艦鎴愬簽澶х殑鑱旂洘鈥斺旇繖甯稿父鏄竴鍦烘垬浜夈傛垜浠璁頒綇涓嬮潰鍏潯鍘熷垯錛?/font>
路 鍘熷垯1錛氭鍒欒〃杈懼紡鏈変笁縐嶄笉鍚屽艦寮?鍖歸厤(m/ /)錛屾浛鎹?s/ / /eg)鍜岃漿鎹?tr/ / /))銆?/font>
路 鍘熷垯2錛氭鍒欒〃杈懼紡浠呭鏍囬噺榪涜鍖歸厤( $scalar =~ m/a/; 鍙互宸ヤ綔; @array =~ m/a/ 灝嗘妸@array浣滀負鏍囬噺
瀵瑰緟錛屽洜姝ゅ彲鑳戒笉浼氭垚鍔?銆?/font>
路 鍘熷垯3錛氭鍒欒〃杈懼紡鍖歸厤涓涓粰瀹氭ā寮忕殑鏈鏃╃殑鍙兘鍖歸厤銆傜己鐪佹椂錛屼粎鍖歸厤鎴栨浛鎹㈡鍒欒〃杈懼紡
涓嬈? $a = 'string string2'; $a =~ s/string/ /; 瀵艱嚧 $a = 'string 2')銆?/font>
路 鍘熷垯4錛氭鍒欒〃杈懼紡鑳藉澶勭悊鍙屽紩鍙鋒墍鑳藉鐞嗙殑浠繪剰鍜屽叏閮ㄥ瓧絎? $a =~ m/$varb/ 鍦ㄥ尮閰嶅墠鎶妚arb鎵╁睍涓?br />鍙橀噺錛涘鏋?$varb = 'a' $a = 'as'錛?a =~ s/$varb/ /; 絳変環浜?$a =~ s/a/ /; 錛屾墽琛岀粨鏋滀嬌 $a = " s" )銆?/font>
路 鍘熷垯5錛氭鍒欒〃杈懼紡鍦ㄦ眰鍊艱繃紼嬩腑浜х敓涓ょ鎯呭喌錛氱粨鏋滅姸鎬佸拰鍙嶅悜寮曠敤錛?$a=~ m/pattern/ 琛ㄧず $a 涓槸鍚︽湁
瀛愪覆 pattern 鍑虹幇錛?a =~ s/(word1)(word2)/$2$1/ 鍒欌滆皟鎹⑩濊繖涓や釜鍗曡瘝銆?/font>
路 鍘熷垯6錛氭鍒欒〃杈懼紡鐨勬牳蹇冭兘鍔涘湪浜庨氶厤絎﹀拰澶氶噸鍖歸厤榪愮畻絎︿互鍙婂畠浠浣曟搷浣溿?a =~ m/\w+/ 鍖歸厤涓涓垨澶氫釜
鍗曡瘝瀛楃錛?a =~ m/\d/" 鍖歸厤闆朵釜鎴栧涓暟瀛椼?/font>
路 鍘熷垯7錛氬鏋滄鍖歸厤涓嶆涓涓瓧絎﹂泦鍚堬紝Perl浣跨敤 "|" 鏉ュ鍔犵伒媧繪с傚鏋滆緭鍏?m/(cat|dog)/ 鍒欑浉褰撲簬鈥滃尮閰?br />瀛楃涓?cat 鎴栬?dog銆?/font>
路 鍘熷垯8錛歅erl鐢?(?..) 璇硶緇欐鍒欒〃杈懼紡鎻愪緵鎵╁睍鍔熻兘銆?/font>
聽聽聽聽聽聽聽 鎴戣寰楀畠搴旇灞炰簬鏇村箍闃旂殑灞嬪絀洪棿錛岃屼笉灞炰簬榪欑嫮灝忕殑灞嬪唴錛岄偅鍎挎湁瀹冪殑涓栫晫錛屾湁瀹冪殑綺懼僵錛屾洿鏈夊畠鐨勯鐗┿傛垜鐢熸曞畠楗挎浜嗭紝鏈夊ソ鍑犳鎯蟲姄浣忓畠錛屾妸瀹冩斁鍒扮獥澶栵紝鍙槸涓鐪ㄧ溂錛屽畠灝辮窇娌′簡銆傛垜榪樼壒鎰忕殑鍒板瀵繪壘錛屽彲緇堢┒娌℃壘鍒般傚彧寰楁瘡澶╀笂鐝墠緇欒翰鍦ㄨ钀芥棶鏃噷鐨勫畠鎵撳0鎷涘懠錛岀紱忓畠鍒楗挎錛屽彲鐖卞鐗圭殑灝忕敓鐏點?/font>
聽聽聽聽聽聽聽 鏃墮棿涓闀胯繖浜嬪氨娣″繕浜嗭紝浠婂ぉ鏃╀笂璧鋒潵錛屽闈㈢殑澶╂皵濂借薄濂借搗鏉ヤ簡錛屾媺寮紿楀笜錛屼幾涓噿鑵幫紝鎽樹笅鐪奸暅錛屾悅鎼傜潯鎰忔湨鑳х殑鐪肩潧銆傚櫕錛屽湴涓婂摢鏉ョ殑榛戠嚎鍥紝鎴翠笂鐪奸暅錛屼竴鐪嬶紝鍛錛佽繖涓嶆槸灝忓铏庡悧錛熷熬宸存柇浜嗭紝瓚村湪閭o紝涓鍙埅瀛愬湪鎶栧姩鐫錛岀毊鑲や篃澶卞幓浜嗗厜娉姐傚攭錛佹垜鎯沖彲鑳藉皬澹佽檸鏈潵鐖笂浜嗙獥甯橈紝鎴戜竴鎷夌獥甯樺畠灝辨帀浜嗕笅鏉ワ紝姝eソ琚垜韙╁湪浜嗚剼涓嬨備笉鐭ラ亾瀹冭繕鑳戒笉鑳芥椿浜嗭紝鎴戣刀绱ф妸瀹冩嫞璧鋒潵錛屾斁鍒扮獥澶栫殑鑺辯泦涓紝閭e効鏈夌偣婀挎皵錛屾湁涓浜涘皬铏瓙銆傛垜鐪嬬潃瀹冿紝瀹冭洞鍦ㄩ偅涓鍔ㄤ笉鍔紝鎴戞兂澶ф鏄浜嗐傜瓑鍒版礂婕卞畬鍐嶆潵鐪嬶紝鍣紒涓嶈浜嗭紝鏄笉鏄埇璧頒簡銆傚績涓殫鏆楃獌鍠滐紝瑕佹槸灝忓铏庤繕媧葷潃錛岃繖鐪熸槸澶ソ浜嗐?/font>
聽聽聽聽聽聽聽 涓鍙皬灝忕殑澹佽檸錛岃蛋榪涗簡鏈笉灞炰簬瀹冪殑涓栫晫錛岄ケ緇忔姌紓紝鎴戞兂瀹冨簲璇ユ湁鏇村己鐨勭敓鍛藉姏銆備篃璁歌繖灝辨槸瀹冮噸鐢熺殑鍒囨満錛岃櫧鐒訛紝榪樺甫鐫娌夌棝鐨勪激錛屼絾姣曠珶鑾峰緱浜嗘柊鐢熴?/font>
2銆佷貢鐮侀棶棰?br />web搴旂敤鐨勬暟鎹簱榪炴帴錛?br />jdbc.driverClassName=org.gjt.mm.mysql.Driver
jdbc.url=jdbc:mysql://localhost/cs?useUnicode=true&characterEncoding=gbk
jdbc.userName=cs
jdbc.password=cs
mysql-5.0.20鐨刴y.ini鏂囦歡錛?br />default-character-set=gbk
鏈変袱澶勶紝涓澶勬寚鏁版嵁瀛樺彇榪囩▼涓殑緙栫爜錛屼竴澶勬寚鍒涘緩schema鎴杢able鐨勯粯璁ょ紪鐮併傛墍浠ョ揣璁拌瀹岀紪鐮佸悗鍐嶅緩schema鎴杢able錛屽惁鍒欒繕鏄貢鐮併?/font>
3銆佷嬌鐢∕ySQL Administrator 1.1寤虹珛schema銆乼able鎴杣ser絳夛紝浣跨敤MySQL Query Browser 1.1鏌ヨ緇撴灉錛屼嬌鐢∕ySQL Workbench寤烘ā銆?/font>
4銆乵ysql鍩烘湰鍛戒護
鍚姩錛氬湪瀹夎鏃跺畨瑁厀indows鐨勬湇鍔★紝浠庢湇鍔″惎鍔ㄥ拰鍋滄錛?br />鐧誨綍錛歮ysql -hlocalhost -uroot -padmin
鍏朵粬錛歴how databases;
聽聽聽聽聽聽聽聽聽聽聽 聽use XXDB;
聽聽聽聽聽聽聽聽聽聽聽聽 show tables;
5銆佹暟鎹簱澶囦喚鍜屾仮澶?br />澶囦喚錛?strong>mysqldump -hlocalhost -uroot -padmin database_name>d:/database_name.data
鎭㈠錛氶鍏堝垱寤烘暟鎹簱database_name錛涚劧鍚庡懡浠?mysql-hlocalhost -uroot -padmin database_name<d:/database_name.data
1銆?span style="FONT: 7pt 'Times New Roman'">聽 鍙槸澧炲姞浜嗕袱涓?span lang="EN-US">js鏂囦歡鍜屽鐞嗕綘欏甸潰鐨刯s錛岃繖浜涗笢瑗垮浣犳槸閫忔槑鐨勶紝寰堢畝鍗曘?o:p>
2銆?span style="FONT: 7pt 'Times New Roman'">聽 涓嶅獎鍝嶆湇鍔″櫒绔殑鏋舵瀯錛屼笉綆′綘鏄彧浣跨敤struts錛岃繕鏄痵truts + spring + hibernate銆?o:p>
1銆?span style="FONT: 7pt 'Times New Roman'">聽
綆鍗曞璞?span lang="EN-US">
String銆乮nt銆丏ate絳夌被鍨嬬殑鍗曚竴鏁版嵁錛岃繑鍥炵粰瀹㈡埛绔樉紺洪兘鏄瓧絎︿覆銆?o:p>
2銆?span style="FONT: 7pt 'Times New Roman'">聽
澶嶆潅瀵硅薄
鐢ㄦ埛鑷畾涔?span lang="EN-US">POJO瀵硅薄銆?o:p>
3銆?span style="FONT: 7pt 'Times New Roman'">聽
鍒楄〃瀵硅薄
List瀵硅薄錛岄噷闈㈡斁鐨勬槸鍚屼竴POJO瀵硅薄銆?o:p>
1銆?span style="FONT: 7pt 'Times New Roman'">聽
綆鍗曞璞℃病鏈夐棶棰樸?span lang="EN-US">
2銆?span style="FONT: 7pt 'Times New Roman'">聽 澶嶆潅瀵硅薄鍙互浣跨敤綾諱技浜?span lang="EN-US">map瀵硅薄鏉ヤ唬鏇匡紝渚嬪錛?o:p>
public class Person {
聽聽聽 private int id;
聽聽聽 private String name;
聽聽聽 private String gender;
聽聽聽 private int age;
聽聽聽 public void setId(int id) {
聽聽聽聽聽聽聽 this.id = id;
聽聽聽 }
聽聽聽 public String getName() {
聽聽聽聽聽聽聽 return name;
}
銆傘傘?span lang="EN-US">
} |
鍙嬌鐢ㄥ涓嬪艦寮忔潵琛ㄧず錛?span lang="EN-US">
var person = { id:'001', name:'test1', gender:'鐢?, age:'15' }; |
3銆?span style="FONT: 7pt 'Times New Roman'">聽
鍒楄〃瀵硅薄錛屽彲浠ヤ嬌鐢?span lang="EN-US">array瀵硅薄涓斁緗甿ap瀵硅薄琛ㄧず錛屼緥濡傦細
var people =[{ id:'001', name:'test1', gender:'鐢?, age:'15' },{ id:'002', name:'test2', gender:'濂?, age:'13' } ] |
榪欐椂灝卞彲浠ュ彂鎸?span lang="EN-US">util.js鐨勫姛鑳戒簡錛屽湪dwr緗戠珯涓婂彲浠ヨ瑙併?o:p>
ajax鐨勫簲鐢ㄥ湪prototype.js涓紝瀹冮拡瀵筧jax鎻愪緵浜嗗ソ澶氭柟娉曪紝璇︾粏鍙prototype寮鍙戠瑪璁?/a>銆?o:p>
鎴戞兂浠g爜浣犱竴鐪嬪氨鏄庣櫧錛?span lang="EN-US">
public ActionForward excute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
聽聽聽 try {
聽聽聽聽聽聽聽 String text = null;
聽聽聽聽聽聽聽 // 鐢ㄦ埛鐧誨綍鍚?o:p>
聽聽聽聽聽聽聽 String logonName = request.getParameter("logonName");
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 logonName = StringUtil.convertEncoding(logonName,"ISO8859_1");
聽聽聽聽聽聽聽 // 鍒版暟鎹簱涓繘琛屾楠?..
聽聽聽聽聽聽聽 System.out.println("logonName:" + logonName);
聽聽聽聽聽聽聽 // 璇ョ敤鎴峰凡緇忓瓨鍦?o:p>
聽聽聽聽聽聽聽 text = logonName;
聽聽聽聽聽聽聽 // 灝嗙粨鏋滆繑鍥為〉闈?o:p>
聽聽聽聽聽聽聽 response.setContentType("text/xml; charset=UTF-8");
聽聽聽聽聽聽聽 response.setHeader("Cache-Control", "no-cache");
聽聽聽聽聽聽聽 PrintWriter pw = response.getWriter();
聽聽聽聽聽聽聽 pw.write(text);
聽聽聽聽聽聽聽 pw.close();
聽聽聽聽聽聽聽
聽聽聽 } catch (Exception e) {
聽聽聽聽聽聽聽 e.printStackTrace();
聽聽
聽}
聽聽聽聽聽聽聽
聽聽聽 //娉ㄦ剰
聽聽聽 return null;
} |
1銆?span style="FONT: 7pt 'Times New Roman'">聽
瀹㈡埛绔嬌鐢?span lang="EN-US">get鏂瑰紡鍙戦佹暟鎹紝濡傛灉瑕佸彂閫佺殑鏄痜orm鏁版嵁鍙互浣跨敤prototype.js涓殑鏂規硶鐢熸垚鍙傛暟錛屼緥濡傦細var pars = Form.serialize(document.all.personForm)銆備唬鐮佺墖鏂涓嬶細
/*
澧炲姞浜哄憳
*/
function writePerson() {
聽聽聽 var url = 'ajax.do?method=showTableRows';
聽 var pars = Form.serialize(document.all.personForm);
聽
聽
聽聽 new Ajax.Request(
聽聽聽聽聽 url,
聽聽聽聽聽 {method: 'get', parameters: pars, onComplete: personResult}
聽 );
}
function personResult(result){
聽聽聽 fillTable(eval(result.responseText));
} |
2銆?span style="FONT: 7pt 'Times New Roman'">聽 鏈嶅姟鍣ㄧ鐨?span lang="EN-US">action鎺ュ彈鏁版嵁鍙互浣跨敤ActionForm錛圓ctionServlet浼氳嚜鍔ㄥ皝瑁呮暟鎹瓧涓茬殑錛夛紝涔熷彲浠ヤ嬌鐢細String personId = request.getParameter("personId")榪欐牱鐨勬柟娉曞崟鐙緱鍒版暟鎹?o:p>
3銆?span style="FONT: 7pt 'Times New Roman'">聽
鍦ㄦ湇鍔″櫒绔嬌鐢?span lang="EN-US">AjaxUtil錛堟垜鍐欑殑涓涓伐鍏風被錛夛紝灝嗙粨鏋滆漿鍙樻垚map鎴朼rray錛屽啀榪斿洖緇欏鎴風銆?o:p>
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import org.apache.commons.beanutils.BeanUtils;
public class AjaxUtil {
聽聽聽 /**
聽聽聽聽 * 灝唋ist緇撴瀯杞彉鎴恓s鐨刟rray緇撴瀯錛岃姹俵ist涓寘鍚殑鏄痬odel
聽聽聽聽 * 渚嬪錛歔{id:'1001',name:'test1'},{id:'1002',name:'test2'},{id:'1003',name:'test3'}]
聽聽聽聽 *
聽聽聽聽 * @param list
聽聽聽聽 *聽聽聽聽聽聽聽聽聽聽聽 List緇撴瀯
聽聽聽聽 * @return js鐨刟rray緇撴瀯
聽聽聽聽 *
聽聽聽聽 * @throws IllegalAccessException
聽聽聽聽 * @throws InvocationTargetException
聽聽聽聽 * @throws NoSuchMethodException
聽聽聽聽 */
聽聽聽 public static String list2StrArray(List list) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
聽聽聽聽聽聽聽 StringBuffer strMap = new StringBuffer();
聽聽聽聽聽聽聽 strMap.append("[");
聽聽聽聽聽聽聽 int listSize = list.size();
聽聽聽聽聽聽聽 for (int i = 0; i < listSize; i++) {
聽聽聽聽聽聽聽聽聽聽聽 Object obj = list.get(i);
聽聽聽聽聽聽聽聽聽聽聽 if (i != listSize - 1)
聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽strMap.append(model2StrMap(obj)).append(",");
聽聽聽聽聽聽聽聽聽聽聽 else
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 strMap.append(model2StrMap(obj));
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 strMap.append("]");
聽聽聽聽聽聽聽 return strMap.toString();
聽聽聽 }
聽聽聽 /**
聽聽聽聽 * 灝唌odel鐨勭粨鏋勮漿鍙樻垚js鐨刴ap緇撴瀯
聽聽聽聽 * 渚嬪錛歿id:'1001',name:'test'}
聽聽聽聽 *
聽聽聽聽 * @param obj
聽聽聽聽 *聽聽聽聽聽聽聽聽聽聽聽 浠諱竴瀵硅薄
聽聽聽聽 * @return js鐨刴ap緇撴瀯
聽聽聽聽 *
聽聽聽聽 * @throws IllegalAccessException
聽聽聽聽 * @throws InvocationTargetException
聽聽聽聽 * @throws NoSuchMethodException
聽聽聽聽 */
聽聽聽 public static String model2StrMap(Object obj) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
聽聽聽聽聽聽聽 StringBuffer strMap = new StringBuffer();
聽聽聽聽聽聽聽 // 鑾峰緱model鐨勫睘鎬у瓧孌?o:p>
聽聽聽聽聽聽聽 Class clazz = obj.getClass();
聽聽聽聽聽聽聽 Field[] fields = clazz.getDeclaredFields();
聽聽聽聽聽聽聽 // 鍙栧嚭mode鐨勫睘鎬у?o:p>
聽聽聽聽聽聽聽 strMap.append("{");
聽聽聽聽聽聽聽 for (int i = 0; i < fields.length; i++) {
聽聽聽聽聽聽聽聽聽聽聽 String fieldName = fields[i].getName();
聽聽聽聽聽聽聽聽聽聽聽 String fieldValue = BeanUtils.getProperty(obj, fieldName);
聽聽聽聽聽聽聽聽聽聽聽 if (i != fields.length - 1)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 strMap.append(fieldName + ":'" + fieldValue + "',");
聽聽聽聽聽聽聽聽聽聽聽 else
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 strMap.append(fieldName + ":'" + fieldValue + "'");
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 strMap.append("}");
聽聽聽聽聽聽聽 return strMap.toString();
聽聽聽 }
} |
4銆?span style="FONT: 7pt 'Times New Roman'">聽 瀹㈡埛绔緱鍒?span lang="EN-US">map鎴朼rray鍚庯紝浣跨敤dwr鐨剈til.js鎻愪緵鐨勬柟娉曞悜欏甸潰鍏冪礌濉厖鏁版嵁銆?o:p>
銆銆銆select tablespace_name,sum(bytes), sum(blocks)
銆銆銆銆from dba_free_space group by tablespace_name;//絀洪棽琛ㄧ┖闂?
銆銆銆select * from dba_data_files
銆銆銆銆where tablespace_name='RBS';//琛ㄧ┖闂村搴旂殑鏁版嵁鏂囦歡
銆銆銆select * from dba_segments
銆銆銆銆where tablespace_name='INDEXS';
銆銆3銆佹暟鎹簱瀵硅薄錛?
銆銆銆select * from dba_objects;
銆銆銆CLUSTER銆丏ATABASE LINK銆丗UNCTION銆両NDEX銆丩IBRARY銆丳ACKAGE銆丳ACKAGE BODY銆?
銆銆銆PROCEDURE銆丼EQUENCE銆丼YNONYM銆乀ABLE銆乀RIGGER銆乀YPE銆乁NDEFINED銆乂IEW銆?
銆銆4銆佽〃錛?
銆銆銆select * from dba_tables;
銆銆銆analyze my_table compute statistics;->dba_tables鍚?鍒?
銆銆銆select extent_id,bytes from dba_extents
銆銆銆where segment_name='CUSTOMERS' and segment_type='TABLE'
銆銆銆order by extent_id;//琛ㄤ嬌鐢ㄧ殑extent鐨勪俊鎭俿egment_type='ROLLBACK'鏌ョ湅鍥炴粴孌電殑絀洪棿鍒嗛厤淇℃伅
銆銆銆鍒椾俊鎭細
聽聽聽聽聽聽聽聽聽聽聽聽聽<1>.
銆銆銆銆select distinct table_name
銆銆銆銆from user_tab_columns
銆銆銆銆where column_name='SO_TYPE_ID';聽
聽聽聽聽聽聽聽聽聽聽聽聽<2>.
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽鏌ヨ琛ㄧ殑鍒楀悕銆佹敞閲娿佺被鍨嬨侀暱搴?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽select a.table_name,a.COLUMN_NAME,b.COMMENTS,a.DATA_TYPE,a.DATA_LENGTH
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽from user_tab_columns a,user_col_comments b
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽where a.table_NAME = b.table_NAME
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽and a.COLUMN_NAME = b.COLUMN_NAME
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽and a.TABLE_NAME = 'table_name';
聽聽聽聽聽聽聽聽聽聽聽聽
銆銆5銆佺儲寮曪細銆
銆銆銆select * from dba_indexes;//绱㈠紩錛屽寘鎷富閿儲寮?
銆銆銆select * from dba_ind_columns;//绱㈠紩鍒?
銆銆銆select i.index_name,i.uniqueness,c.column_name
銆銆銆銆from user_indexes i,user_ind_columns c
銆銆銆銆銆where i.index_name=c.index_name
銆銆銆銆銆and i.table_name ='ACC_NBR';//鑱旀帴浣跨敤
銆銆6銆佸簭鍒楋細
銆銆銆select * from dba_sequences;
銆銆7銆佽鍥撅細
銆銆銆select * from dba_views;
銆銆銆select * from all_views;
銆銆text 鍙敤浜庢煡璇㈣鍥劇敓鎴愮殑鑴氭湰
銆銆8銆佽仛綈囷細
銆銆銆select * from dba_clusters;
銆銆9銆佸揩鐓э細
銆銆銆select * from dba_snapshots;
銆銆蹇収銆佸垎鍖哄簲瀛樺湪鐩稿簲鐨勮〃絀洪棿銆?
銆銆10銆佸悓涔夎瘝錛?
銆銆銆select * from dba_synonyms
銆銆銆銆where table_owner='SPGROUP';
銆銆銆銆//if owner is PUBLIC,then the synonyms is a public synonym.
銆銆銆銆銆if owner is one of users,then the synonyms is a private synonym.
銆銆11銆佹暟鎹簱閾撅細
銆銆銆select * from dba_db_links;
銆銆鍦╯pbase涓嬪緩鏁版嵁搴撻摼
銆銆銆create database link dbl_spnew
銆銆銆connect to spnew identified by spnew using 'jhhx';
銆銆銆insert into
acc_nbr@dbl_spnew
銆銆銆select * from acc_nbr where nxx_nbr='237' and line_nbr='8888';
銆銆12銆佽Е鍙戝櫒錛?
銆銆銆select * from dba_trigers;
銆銆瀛樺偍榪囩▼錛屽嚱鏁頒粠dba_objects鏌ユ壘銆?
銆銆鍏舵枃鏈細select text from user_source where name='BOOK_SP_EXAMPLE';
銆銆寤虹珛鍑洪敊錛歴elect * from user_errors;
銆銆oracle鎬繪槸灝嗗瓨鍌ㄨ繃紼嬶紝鍑芥暟絳夎蔣浠舵斁鍦⊿YSTEM琛ㄧ┖闂淬?
銆銆13銆佺害鏉燂細
銆銆錛?錛夌害鏉熸槸鍜岃〃鍏寵仈鐨勶紝鍙湪create table鎴朼lter table table_name add/drop/modify鏉ュ緩绔嬨佷慨鏀廣佸垹闄ょ害鏉熴?
銆銆鍙互涓存椂紱佹綰︽潫錛屽錛?
銆銆銆alter table book_example
銆銆銆disable constraint book_example_1;
銆銆銆alter table book_example
銆銆銆enable constraint book_example_1;
銆銆錛?錛変富閿拰澶栭敭琚О涓鴻〃綰︽潫錛岃宯ot null鍜寀nique涔嬬被鐨勭害鏉熻縐頒負鍒楃害鏉熴傞氬父灝嗕富閿拰澶栭敭浣滀負鍗曠嫭鐨勫懡鍚嶇害鏉熸斁鍦ㄥ瓧孌靛垪琛ㄤ笅闈紝鑰屽垪綰︽潫鍙斁鍦ㄥ垪瀹氫箟鐨勫悓涓琛岋紝榪欐牱鏇村叿鏈夊彲璇繪с?
銆銆錛?錛夊垪綰︽潫鍙粠琛ㄥ畾涔夌湅鍑猴紝鍗砫escribe;琛ㄧ害鏉熷嵆涓婚敭鍜屽閿紝鍙粠dba_constraints鍜宒ba_cons_columns 鏌ャ?
銆銆銆select * from user_constraints
銆銆銆where table_name='BOOK_EXAMPLE';
銆銆銆select owner,CONSTRAINT_NAME,TABLE_NAME
銆銆銆銆from user_constraints
銆銆銆銆where constraint_type='R'
銆銆銆銆order by table_name;
銆銆錛?錛夊畾涔夌害鏉熷彲浠ユ棤鍚嶏紙緋葷粺鑷姩鐢熸垚綰︽潫鍚嶏級鍜岃嚜宸卞畾涔夌害鏉熷悕錛堢壒鍒槸涓婚敭銆佸閿級
銆銆濡傦細create table book_example
銆銆銆銆(identifier number not null);
銆銆銆銆create table book_example
銆銆銆銆(identifier number constranit book_example_1 not null);
銆銆14銆佸洖婊氭錛?
銆銆鍦ㄦ墍鏈夌殑淇敼緇撴灉瀛樺叆紓佺洏鍓嶏紝鍥炴粴孌典腑淇濇寔鎭㈠璇ヤ簨鍔℃墍闇鐨勫叏閮ㄤ俊鎭紝蹇呴』浠ユ暟鎹簱鍙戠敓鐨勪簨鍔℃潵鐩稿簲紜畾鍏跺ぇ灝忥紙DML璇彞鎵嶅彲鍥炴粴錛宑reate,drop,truncate絳塂DL涓嶈兘鍥炴粴錛夈?
銆銆鍥炴粴孌墊暟閲?騫跺彂浜嬪姟/4錛屼絾涓嶈兘瓚呰繃50錛涗嬌姣忎釜鍥炴粴孌靛ぇ灝忚凍澶熷鐞嗕竴涓畬鏁寸殑浜嬪姟錛?
銆銆銆create rollback segment r05
銆銆銆tablespace rbs;
銆銆銆create rollback segment rbs_cvt
銆銆銆tablespace rbs
銆銆銆storage(initial 1M next 500k);
銆銆浣垮洖婊氭鍦ㄧ嚎
銆銆銆alter rollback segment r04 online;
銆銆鐢╠ba_extents,v$rollback_segs鐩戞祴鍥炴粴孌電殑澶у皬鍜屽姩鎬佸闀褲?
銆銆鍥炴粴孌電殑鍖洪棿淇℃伅
銆銆銆select * from dba_extents
銆銆銆where segment_type='ROLLBACK' and segment_name='RB1';
銆銆鍥炴粴孌電殑孌典俊鎭?鍏朵腑bytes鏄劇ず鐩墠鍥炴粴孌電殑瀛楄妭鏁?
銆銆銆select * from dba_segments
銆銆銆銆where segment_type='ROLLBACK' and segment_name='RB1';
銆銆涓轟簨鐗╂寚瀹氬洖褰掓
銆銆銆set transaction use rollback segment rbs_cvt
銆銆閽堝bytes鍙互浣跨敤鍥炴粴孌靛洖緙┿?
銆銆銆alter rollback segment rbs_cvt shrink;
銆銆銆select bytes,extents,max_extents from dba_segments
銆銆銆銆where segment_type='ROLLBACK' and segment_name='RBS_CVT';
銆銆鍥炴粴孌電殑褰撳墠鐘舵佷俊鎭細
銆銆銆select * from dba_rollback_segs
銆銆銆銆where segment_name='RB1';
銆銆姣斿鍥炴粴孌電姸鎬乻tatus錛屽洖婊氭鎵灞炲疄渚媔nstance_num
銆銆鏌ヤ紭鍖栧紀ptimal
銆銆銆select n.name,s.optsize
銆銆銆銆from v$rollname n,v$rollstat s
銆銆銆銆銆where n.usn=s.usn;
銆銆鍥炴粴孌典腑鐨勬暟鎹?
銆銆銆set transaction use rollback segment rb1;/*鍥炴粴孌靛悕*/
銆銆銆select n.name,s.writes
銆銆銆銆from v$rollname n,v$rollstat s
銆銆銆銆銆where n.usn=s.usn;
銆銆褰撲簨鍔″鐞嗗畬姣曪紝鍐嶆鏌ヨ$rollstat錛屾瘮杈僿rites(鍥炴粴孌墊潯鐩瓧鑺傛暟)宸鹼紝鍙‘瀹氫簨鍔$殑澶у皬銆?
銆銆鏌ヨ鍥炴粴孌典腑鐨勪簨鍔?
銆銆銆column rr heading 'RB Segment' format a18
銆銆銆column us heading 'Username' format a15
銆銆銆column os heading 'Os User' format a10
銆銆銆column te heading 'Terminal' format a10
銆銆銆select r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te
銆銆銆銆from v$lock l,v$session s,v$rollname r
銆銆銆銆銆where l.sid=s.sid(+)
銆銆銆銆銆and trunc(l.id1/65536)=R.USN
銆銆銆銆銆and l.type='TX'
銆銆銆銆銆and l.lmode=6
銆銆銆order by r.name;
銆銆15銆佷綔涓?
銆銆鏌ヨ浣滀笟淇℃伅
銆銆銆select job,broken,next_date,interval,what from user_jobs;
銆銆銆select job,broken,next_date,interval,what from dba_jobs;
銆銆鏌ヨ姝e湪榪愯鐨勪綔涓?
銆銆銆select * from dba_jobs_running;
銆銆浣跨敤鍖卐xec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')鍔犲叆浣滀笟銆傞棿闅?0縐掗挓
聽聽聽 exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')鍔犲叆浣滀笟銆傞棿闅?1鍒嗛挓浣跨敤鍖卐xec dbms_job.remove(21)鍒犻櫎21鍙蜂綔涓氥?br />
鍏跺疄 DWR 宸茬粡鑰冭檻濂戒簡錛屽湪 DWR1.1 涓彲浠ュ埄鐢?/span> uk.ltd.getahead.dwr.WebContext 鍜?/span> uk.ltd.getahead.dwr.WebContextFactory 鏉ュ拰 Http Servlet 鐨勬爣鍑嗗璞¤繘琛岄氫俊錛屽寘鎷細
l聽聽聽聽聽聽聽聽 HttpServletRequest l聽聽聽聽聽聽聽聽 HttpServletResponse l聽聽聽聽聽聽聽聽 HttpSession l聽聽聽聽聽聽聽聽 ServletContext l聽聽聽聽聽聽聽聽 ServletConfig |
聽聽聽聽聽聽 鍏蜂綋鐨勪嬌鐢ㄦ柟娉曞涓嬶細
import javax.servlet.http.HttpServletRequest; import uk.ltd.getahead.dwr.WebContext; import uk.ltd.getahead.dwr.WebContextFactory;
/// WebContext ctx = WebContextFactory.get(); HttpServletRequest req = ctx.getHttpServletRequest(); |
聽聽聽聽聽聽 WebContext 鏄嬌鐢?/span> ThreadLocal 淇濆瓨鐨勶紝浣犲彲浠ョ湅涓涓?/span> uk.ltd.getahead.dwr.impl.DefaultWebContextBuilder 婧愮爜錛屾墍浠ュ彲浠ュ湪浠諱綍鍦版柟浣跨敤瀹冿紝渚嬪鍦ㄤ笂涓綃囩殑 demo 涓繘琛屾祴璇曞涓嬶細
鍦?/span>
index.html
澶撮儴澧炲姞濡備笅浠g爜騫舵敼鍚嶄負
index.jsp
<%@ page contentType="text/html; charset=GBK" %>
<% System.out.println("This is DWR servlet object!");
session.setAttribute("dwr","love dwr"); %> |
淇敼
MessageDao.java
鐨勪唬鐮佸涓?/span>
package test.dwr;
import javax.servlet.http.HttpServletRequest;
import uk.ltd.getahead.dwr.WebContext;
import uk.ltd.getahead.dwr.WebContextFactory;
public class MessageDao {
聽聽聽 public Message save(Message message) {
聽聽聽聽聽聽聽
WebContext ctx = WebContextFactory.get();
聽聽聽聽聽聽聽 HttpServletRequest req = ctx.getHttpServletRequest();
聽聽聽聽聽聽聽
聽聽聽聽聽聽
聽System.out.println("========HttpServletRequest Begin=======");
聽聽聽聽聽聽聽 System.out.println("req:" + req.getRemoteHost());
聽聽聽聽聽聽聽 System.out.println("req-session:" + req.getSession().getAttribute("dwr"));
聽聽聽聽聽聽聽 System.out.println("text:" + req.getParameter("text"));
聽聽聽聽聽聽聽 System.out.println("from:" + req.getParameter("from"));
聽聽聽聽聽聽聽 System.out.println("=========HttpServletRequest End========");
聽聽聽聽聽聽聽 System.out.println("========Lucky DWR Begin=======");
聽聽聽聽聽聽聽 System.out.println("text:" + message.getText());
聽聽聽聽聽聽聽 System.out.println("from:" + message.getFrom());
聽聽聽聽聽聽聽 System.out.println("=========Lucky DWR End========");
聽聽聽聽聽聽聽 return message;
聽聽聽 }
聽聽聽 public Message get() {
聽聽聽聽聽聽聽 return new Message("This is the first dwr demo!", "test");
聽聽聽 }
} |
dom4j-1.6.1.jar
jaxen-1.1-beta-6.jar錛?/SPAN>XPath蹇呭錛?/SPAN>
鍙栨煇涓鑺傜偣
Element root = (Element) document.selectSingleNode("http://root");
鍙栨煇涓鑺傜偣鐨勫睘鎬?/SPAN>
Attribute attribute = (Attribute) document.selectSingleNode("http://root/cell/@value");
浣跨敤緇忛獙
鎴戜滑鍦ㄥ仛緋葷粺闂翠氦浜掓椂錛岄氬父閫氳繃鑷畾涔夌殑xml鏂囦歡榪涜鏁版嵁浜ゆ崲銆備緥濡傦細緋葷粺A闇瑕佸悜緋葷粺B浼犺緭涓涓?/SPAN>xml瀛椾覆鐨勬潯浠跺涓嬶細
<?xml version="1.0" encoding="gb2312"?> <root systemid="Darenkou" userid="admin" default="DA" icon="0000"> <cell value=""/> </root> |
緋葷粺A鍙渶濉厖cell鑺傜偣鐨?/SPAN>value灞炴у鹼紝鎴戠殑寤鴻鏄皢榪欐xml鍐欐垚鏈湴鏂囦歡錛屾瘡嬈′紶杈撴椂棣栧厛璇誨彇xml鏂囦歡錛屽啀緗?/SPAN>cell鑺傜偣鐨?/SPAN>value灞炴у鹼紝鐒跺悗灝?/SPAN>xml瀵硅薄杞彉鎴愬瓧涓蹭紶緇欑郴緇?/SPAN>B銆傝繖鏍風殑浼樼偣鏄細涓鑸?/SPAN>systemid="Darenkou" userid="admin" default="DA" icon="0000" 鏄紶杈撳弬鏁幫紝褰撴湁鎵鍙樺姩鏃跺彧闇淇敼鏈湴鏂囦歡鍗沖彲銆?/SPAN>
璇︾粏渚嬬▼
test.xml
<?xml version="1.0" encoding="gb2312"?> <root id="TK12" name="綆$悊鍛?/SPAN>" value=""/> |
XmlTest.java
import java.io.File; import java.io.IOException; import java.io.StringWriter; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Iterator; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class XmlTest { public static String generateXml(HashMap map) { String strXml = null; if (map != null) { SAXReader reader = new SAXReader(); Document document = null; try { document = reader.read(new File("D:/test.xml")); } catch (DocumentException e) { e.printStackTrace(); } Element root = (Element) document.selectSingleNode("http://root"); root.attribute("value").setValue("鍒嗗竷"); Iterator iter = map.keySet().iterator(); while (iter.hasNext()) { String key = (String) iter.next(); String value = (String) map.get(key); Element element = root.addElement("cell").addAttribute("value", key); element.addElement("element").addAttribute("type", "鏁板?/SPAN>") .addAttribute("name", "浜烘暟").addText(value); } strXml = encodeXml(document, "gb2312"); } return strXml; } private static String encodeXml(Document document, String aEncode) { // 榪涜緙栫爜杞崲 StringWriter sw = new StringWriter(); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding(aEncode); try { XMLWriter writer = new XMLWriter(format); writer.setWriter(sw); writer.write(document); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return sw.toString(); } public static void main(String[] args) { HashMap map = new HashMap(); map.put("涓婃搗", "200"); map.put("鍖椾含", "300"); map.put("澶╂觸", "300"); System.out.println(generateXml(map)); } } |
浣跨敤java宸茬粡涓ゅ勾澶氫簡錛屾湁鏃墮渶寮鍙戜竴浜涙闈㈢▼搴忎綔涓鴻緟鍔╁伐鍏鳳紝鐔熸倝java閭e氨鐢╦ava寮鍙戜簡錛屽彲鎭剁殑鏄緢灝忕殑搴旂敤紼嬪簭鍗磋鑳岃礋鐫涓涓簽澶с佺瘡璧樼殑jre錛岀壒鍒槸鍦ㄧ粰鐢ㄦ埛閮ㄧ講鏃訛紝榪樿鐗規剰鐨勫畨瑁卝re錛岀湡鏄棝鑻︺傝屼笖swing鐨勭晫闈㈡繪槸璁╀漢鎰熷埌涓嶄雞涓嶇被錛宻wt濂界偣錛屼絾鏄誨緱瑕佹嫋鐫jre錛岄儊闂楓?o:p>
姝eソ榪欐鏃墮棿蹇冭鏉ユ疆錛屾兂瀛︿竴鐐?SPAN lang=EN-US>c鐨勭煡璇嗭紝g鏉鍘誨嵈g鍒頒簡wxPython榪欎釜紲炲鐨勪笢涓滐細璺ㄥ鉤鍙般佹湰鍦扮晫闈€佽璦綆媧佲﹀叾瀹瀢xPython鏄熀浜嶱ython瑙i噴鍣ㄨ皟鐢╳xWidgets鐨勶紝鎵浠ュ畠鍏鋒湁Python璇█鐨勭畝媧侀珮鏁堬紝鍙堝叿鏈墂xWidgets鐨勬湰鍦板寲鍜岃法騫沖彴銆?o:p>
鎯寵緇嗕簡瑙o紝灝辯湅涓嬮潰緗戠珯錛?SPAN lang=EN-US>
Python錛?A >http://www.python.org/
WxWidgets錛?A >http://wxwidgets.org/
WxPython錛?A >http://www.wxpython.org/
鎯崇湅絀剁珶鏄粈涔堬紝灝辮窡鐫鎴戦厤緗幆澧冪湅demo鍚э紒
涓嬭澆瀹夎濡備笅杞歡錛?SPAN lang=EN-US>
1銆?SPAN style="FONT: 7pt 'Times New Roman'"> python-2.4.msi錛?A >http://www.python.org/download/
2銆?SPAN style="FONT: 7pt 'Times New Roman'"> wxPython2.6-win32-unicode-2.6.1.0-py24.exe
3銆?SPAN style="FONT: 7pt 'Times New Roman'"> wxPython2.6-win32-docs-demos-2.6.1.0.exe
4銆?SPAN style="FONT: 7pt 'Times New Roman'"> 2鍜?閮藉湪http://www.wxpython.org/download.php#binaries
5銆?SPAN style="FONT: 7pt 'Times New Roman'"> 瀹夎欏哄簭1銆?銆?
6銆?SPAN style="FONT: 7pt 'Times New Roman'"> 鐐瑰嚮緋葷粺鑿滃崟wxPython2.6 Docs and Demos and Tools 鐨?Run the wxPython Deme錛屾槸涓嶆槸宸茬湅鍒頒簡鍙埍鐨刾ython浜嗭紝浠旂粏嬈h祻鍚э紒
紼嶅井瑙i噴涓涓嬶細
......
String exSQL = " SELECT * FROM PK_TEST WHERE ID = ?";
pstmt = conn.prepareStatement(exSQL);
pstmt.setString(1,idValue);
ResultSet rs = pstmt.executeQuery();
......
鍏朵腑PK_TEST緇撴瀯濡備笅錛?/FONT>
CREATE TABLE PK_TEST (
ID CHAR (9) NOT NULL,
NAME VARCHAR2 (40),
GENDER CHAR (1),
CONSTRAINT PK_PK_TEST
PRIMARY KEY ( ID ) ) ;
娉ㄦ剰錛欼D鏄疌HAR (9)
鍦ㄨ〃涓彃鍏ユ祴璇曟暟鎹細
INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('1 ', 'test1', '1');
INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('2 ', 'test2', '0');
INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('3 ', 'test3', '1');
INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('123456789', 'test4', '0');
INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('987654321', 'test5', '1');
浣跨敤Toad鎵ц:
SELECT * FROM PK_TEST WHERE ID ='1';
SELECT * FROM PK_TEST WHERE ID ='1 ';
閮芥病鏈夐棶棰橈紝浣嗗鏋滄垜灝嗗墠闈ava璇硶pstmt.setString(1,idValue);涓殑idValue璧嬪間負'1'錛岀▼搴忓氨鏄彇涓嶅埌鍊鹼紱
緇х畫嫻嬭瘯錛?BR>SELECT * FROM PK_TEST WHERE ID = :ID;
璧嬪間負'1'錛屾病鏈夌粨鏋滐紱
璧嬪間負'1 '錛岀粨鏋滃嚭鏉ヤ簡錛?/FONT>
鍙鏃犺鍦╦dbc榪樻槸鍦ㄦ暟鎹簱涓蔣緙栫爜鍜岀‖緙栫爜鏈変竴瀹氱殑鍖哄埆銆?/FONT>
鍞夛紒鏁寸悊鏁版嵁搴撲腑鐨勪富閿惂錛欼D = SUBSTR(TRIM(ID)||'000000000',0,9);