锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 棣栧厛,鍩轟簬涓涓畝鍗曠殑鏂伴椈緋葷粺,瑕佹兂鍋氬叏鏂囨绱?鏂伴椈緋葷粺鐨勭鐞嗙瓑鍦ㄨ繖閲屼笉鍦ㄥ叿浣撴彁鍑?涓嬮潰鍒楀嚭鏂伴椈瀵硅薄鐨勭被:
娉?紼嬪簭鐢ㄤ細鍒頒竴浜涘伐鍏風被,涓嶅湪姝ゅ垪鍑?鐢ㄦ埛鍙互鑷繁瀹炵幇.
package com.jscud.website.newsinfo.bean;
import java.sql.Timestamp;
import com.jscud.util.DateTime;
import com.jscud.util.StringFunc;
import com.jscud.website.newsinfo.NewsConst;
/**
* 涓涓柊闂?
*
* @author scud(椋炰簯灝忎緺) http://www.jscud.com
*
*/
public class NewsItem
{
private int nid; //鏂伴椈緙栧彿
private int cid; //綾誨埆緙栧彿
private String title;//鏍囬
private int showtype; //鍐呭綾誨瀷:鐩墠鏀寔url鍜宧tml
private String content;//鍐呭
private String url;//瀵瑰簲緗戝潃,濡傛灉鍐呭綾誨瀷鏄痷rl鐨勮瘽
private Timestamp addtime; //澧炲姞鏃墮棿
private int click; //鐐瑰嚮鏁?br />
//瀵瑰簲鐨刧et,set鍑芥暟,杈冨涓嶅湪鍒楀嚭,鍙互浣跨敤宸ュ叿鐢熸垚
//......
/**
* 鎸夌収綾誨瀷鏍煎紡鍖?br />
*/
public String getShowContent()
{
String sRes = content;
if(showtype == NewsConst.ShowType_HTML)
{
}
return sRes;
}
public String getTarget()
{
if(showtype == NewsConst.ShowType_URL)
{
return "_blank";
}
else
return "";
}
/**
* 闈欐丠tml鏂囦歡鐨勮礬寰勫強鍏跺悕瀛?br />
*/
public String getHtmlFileName()
{
int nYear = DateTime.getYear_Date(getAddtime());
int nMonth = DateTime.getMonth_Date(getAddtime());
String sGeneFileName =
"/news/" + getCid() + "/" + nYear + "/" + nMonth +"/" + getNid() + ".htm";
return sGeneFileName;
}
/**
* 闈欐丠tml鏂囦歡鐨勮礬寰?br />
*/
public String getHtmlFilePath()
{
int nYear = DateTime.getYear_Date(getAddtime());
int nMonth = DateTime.getMonth_Date(getAddtime());
String sGeneFilePath =
getCid() + "_" + nYear + "_" + nMonth;
return sGeneFilePath;
}
}
鍙互鐪嬪埌,鎴戜滑闇瑕佸鏍囬鍜屽唴瀹硅繘琛屾绱?涓轟簡榪欎釜鐩殑,鎴戜滑棣栧厛闇瑕佹潵鐮旂┒涓涓媗ucene.
鍦↙ucene涓?濡傛灉瑕佽繘琛屽叏鏂囨绱?蹇呴』瑕佸厛寤虹珛绱㈠紩鐒跺悗鎵嶈兘榪涜媯绱?褰撶劧瀹為檯宸ヤ綔涓繕浼氭湁鍒犻櫎绱㈠紩鍜屾洿鏂扮儲寮曠殑宸ヤ綔.
鍦ㄦ涔嬪墠,浠嬬粛涓涓渶鍩烘湰鐨勭被(鎽樻妱鑷?a href="http://www.tkk7.com/cap/archive/2005/07/17/7849.html">http://www.tkk7.com/cap/archive/2005/07/17/7849.html):
Analyzer 鏂囦歡鐨勫垎鏋愬櫒錛堝惉璧鋒潵鍒壄錛岃繕鏄彨Analyzer濂戒簡)鐨勬娊璞★紝榪欎釜綾葷敤鏉ュ鐞嗗垎璇?瀵逛腑鏂囧挨鍏墮噸瑕侊紝杞崲澶у皬鍐?Computer->computer,瀹炵幇鏌ヨ澶у皬鍐欐棤鍏?錛岃漿鎹㈣瘝鏍?computers->computer),娑堥櫎stop words絳?榪樿礋璐f妸鍏朵粬鏍煎紡鏂囨。杞崲涓虹函鏂囨湰絳?
鍦╨ucene涓?涓鑸細浣跨敤StandardAnalyzer鏉ュ垎鏋愬唴瀹?瀹冩敮鎸佷腑鏂囩瓑澶氬瓧鑺傝璦,褰撶劧鍙互鑷繁瀹炵幇鐗規(guī)畩鐨勮В鏋愬櫒.StandardAnalyzer鐩墠瀵逛腑鏂囩殑澶勭悊鏄寜鐓у崟瀛楁潵澶勭悊鐨?榪欐槸鏈綆鍗曠殑鍔炴硶,浣嗘槸涔熸湁緙虹偣,浼氱粍鍚堝嚭涓浜涙病鏈夋剰涔夌殑緇撴灉鏉?
棣栧厛鎴戜滑鏉ヤ簡瑙e緩绔嬬儲寮?寤虹珛绱㈠紩鍖呭惈2縐嶆儏鍐?涓縐嶆槸緇欎竴鏉℃柊闂誨緩绔嬬儲寮?鍙﹀鐨勬儏鍐墊槸鍦ㄥ紑濮嬫垨鑰呬竴瀹氱殑鏃墮棿緇欐壒閲忕殑鏂伴椈寤虹珛绱㈠紩,鎵浠ヤ負浜嗛氱敤,鎴戜滑鍐欎竴涓氱敤鐨勫緩绔嬬儲寮曠殑鍑芥暟:
(涓鑸竴綾葷殑绱㈠紩閮芥斁鍦ㄤ竴涓洰褰曚笅,榪欎釜閰嶇疆鍙互鍦ㄥ嚱鏁頒腑瀹氫箟,涔熷彲浠ュ啓鍦ㄩ厤緗枃浠朵腑,閫氳繃鍙傛暟浼犻掔粰鍑芥暟.)
/** * 鐢熸垚绱㈠紩. * * @param doc 鐩爣鏂囨。 * @param indexDir 绱㈠紩鐩綍 */ public static void makeIndex(Document doc, String indexDir) { List aList = new ArrayList(); aList.add(doc); makeIndex(aList, indexDir); } /** * 鐢熸垚绱㈠紩. * * @param doc 鐢熸垚鐨刣ocument. * @param indexDir 绱㈠紩鐩綍 */ public static void makeIndex(List docs, String indexDir) { if (null == docs) { return; } boolean indexExist = indexExist(indexDir); IndexWriter writer = null; //娣誨姞涓鏉℃枃妗?br />
for (int i = 0; i < docs.size(); i++) //绱㈠紩瀹屾垚鍚庣殑澶勭悊 |
鍙互鐪嬪埌,寤虹珛绱㈠紩鐢ㄥ埌綾繪槸IndexWrite,瀹冨彲浠ユ柊寤虹儲寮曟垨鑰呰拷鍔犵儲寮?浣嗘槸闇瑕佽嚜宸卞垽鏂?鍒ゆ柇鏄氳繃IndexReader榪欎釜綾繪潵瀹炵幇鐨?鍑芥暟濡備笅:
/** * 媯鏌ョ儲寮曟槸鍚﹀瓨鍦? * @param indexDir * @return */ public static boolean indexExist(String indexDir) { return IndexReader.indexExists(indexDir); } |
濡傛灉姣忔閮芥槸鏂板緩绱㈠紩鐨勮瘽,浼氭妸鍘熸潵鐨勮褰曞垹闄?鎴戝湪浣跨敤鐨勬椂鍊欎竴寮濮嬪氨娌℃湁娉ㄦ剰鍒?鍚庢潵瑙傚療浜嗕竴涓嬬儲寮曟枃浠?鎵嶅彂鐜拌繖涓棶棰?
榪樺彲浠ョ湅鍒?寤虹珛绱㈠紩鏄粰鐢ㄦ埛鐨凞ocument瀵硅薄寤虹珛绱㈠紩,Document琛ㄧず绱㈠紩涓殑涓鏉℃枃妗h褰?閭d箞鎴戜滑濡備綍寤虹珛涓涓枃妗i偅?浠ユ柊闂葷郴緇熶負渚?浠g爜濡備笅:
/** * 鐢熸垚鏂伴椈鐨凞ocument. * * @param aNews 涓鏉℃柊闂? * * @return lucene鐨勬枃妗e璞?br /> */ public static Document makeNewsSearchDocument(NewsItem aNews) { Document doc = new Document(); doc.add(Field.Keyword("nid", String.valueOf(aNews.getNid()))); doc.add(Field.Text("title", aNews.getTitle())); //瀵笻tml榪涜瑙f瀽,濡傛灉涓嶆槸html,鍒欎笉闇瑕佽В鏋?鎴栬呮牴鎹牸寮忚皟鐢ㄨ嚜宸辯殑瑙f瀽鏂規(guī)硶 String content = parseHtmlContent(aNews.getContent()); doc.add(Field.UnStored("content", content)); doc.add(Field.Keyword("addtime", aNews.getAddtime())); //鍙互鍔犲叆鍏朵粬鐨勫唴瀹?渚嬪鏂伴椈鐨勮瘎璁虹瓑 doc.add(Field.UnStored("other", "")); //璁塊棶url String newsUrl = "/srun/news/viewhtml/" + aNews.getHtmlFilePath() + "/" + aNews.getNid() + ".htm"; doc.add(Field.UnIndexed("visiturl", newsUrl)); return doc; } |
閫氳繃涓婇潰鐨勪唬鐮?鎴戜滑鎶婁竴鏉℃柊闂昏漿鎹負lucene鐨凞ocument瀵硅薄,浠庤岃繘琛岀儲寮曞伐浣?鍦ㄤ笂闈㈢殑浠g爜涓?鎴戜滑鍙堝紩鍏ヤ簡lucene涓殑Field(瀛楁)綾?Document鏂囨。灝卞儚鏁版嵁搴撲腑鐨勪竴鏉¤褰?瀹冩湁寰堝瀛楁,姣忎釜瀛楁鏄竴涓狥ield瀵硅薄.
浠庡埆鐨勬枃绔犳憳鎶勪竴孌靛叧浜嶧ield鐨勮鏄?鎽樻妱鑷?a href="http://www.tkk7.com/cap/archive/2005/07/17/7849.html">http://www.tkk7.com/cap/archive/2005/07/17/7849.html):
[quote]
綾誨瀷 Analyzed Indexed Stored 璇存槑
Field.Keyword(String,String/Date) N Y Y 榪欎釜Field鐢ㄦ潵鍌ㄥ瓨浼氱洿鎺ョ敤鏉ユ绱㈢殑姣斿(緙栧彿,濮撳悕,鏃ユ湡絳?
Field.UnIndexed(String,String) N N Y 涓嶄細鐢ㄦ潵媯绱㈢殑淇℃伅,浣嗘槸媯绱㈠悗闇瑕佹樉紺虹殑,姣斿,紜歡搴忓垪鍙?鏂囨。鐨剈rl鍦板潃
Field.UnStored(String,String) Y Y N 澶ф鏂囨湰鍐呭,浼氱敤鏉ユ绱?浣嗘槸媯绱㈠悗涓嶉渶瑕佷粠index涓彇鍐呭,鍙互鏍規(guī)嵁url鍘籰oad鐪熷疄鐨勫唴瀹?
Field.Text(String,String) Y Y Y 媯绱?鑾峰彇閮介渶瑕佺殑鍐呭,鐩存帴鏀緄ndex涓?涓嶈繃榪欐牱浼氬澶ndex
Field.Text(String,Reader) Y Y N 濡傛灉鏄竴涓猂eader, lucene鐚滄祴鍐呭姣旇緝澶?浼氶噰鐢║nstored鐨勭瓥鐣?
[/quote]
鎴戜滑鍙互鐪嬪埌鏂伴椈鐨勭紪鍙鋒槸鐩存帴鐢ㄦ潵媯绱㈢殑,鎵浠ユ槸Keyword綾誨瀷鐨勫瓧孌?鏂伴椈鐨勬爣棰樻槸闇瑕佹绱㈠拰鏄劇ず鐢ㄧ殑,鎵浠ユ槸Text綾誨瀷,鑰屾柊闂葷殑鍐呭鍥犱負鏄疕tml鏍煎紡鐨?鎵浠ュ湪緇忚繃瑙f瀽鍣ㄧ殑澶勭悊鐢?浣跨敤鐨刄nStored鐨勬牸寮?鑰屾柊闂葷殑鏃墮棿鏄洿鎺ョ敤鏉ユ绱㈢殑,鎵浠ユ槸KeyWord綾誨瀷.涓轟簡鍦ㄦ柊闂葷儲寮曞悗鐢ㄦ埛鍙互璁塊棶鍒板畬鏁寸殑鏂伴椈欏甸潰,榪樿緗簡涓涓猆nIndexed綾誨瀷鐨勮闂湴鍧瀛楁.
(瀵笻tml榪涜瑙f瀽鐨勫鐞嗙◢鍚庡湪榪涜璁茶В)
涓轟竴鏉℃柊闂誨緩绔嬬儲寮曢渶瑕佷袱涓楠?鑾峰彇Document,浼犵粰makeIndex鍑芥暟,浠g爜濡備笅:
public static void makeNewsInfoIndex(NewsItem aNews) { if (null == aNews) { return; } makeIndex(makeNewsSearchDocument(aNews),indexDir); } |
寤虹珛绱㈠紩鐨勫伐浣滃氨榪涜瀹屼簡,鍙鍦ㄥ鍔犳柊闂誨悗璋冪敤 makeNewsInfoIndex(newsitem); 灝卞彲浠ュ緩绔嬬儲寮曚簡.
濡傛灉闇瑕佸垹闄ゆ柊闂?閭d箞涔熻鍒犻櫎瀵瑰簲鐨勭儲寮?鍒犻櫎绱㈠紩鏄氳繃IndexReader綾繪潵瀹屾垚鐨?
/** * 鍒犻櫎绱㈠紩. * @param aTerm 绱㈠紩鍒犻櫎鏉′歡 * @param indexDir 绱㈠紩鐩綍 */ public static void deleteIndex(Term aTerm, String indexDir) { List aList = new ArrayList(); aList.add(aTerm); deleteIndex(aList, indexDir); } /** IndexReader reader = null; |
鍒犻櫎绱㈠紩闇瑕佷竴涓潯浠?綾諱技鏁版嵁搴撲腑鐨勫瓧孌墊潯浠?渚嬪鍒犻櫎涓鏉℃柊闂葷殑浠g爜濡備笅:
public static void deleteNewsInfoIndex(int nid) { Term aTerm = new Term("nid", String.valueOf(nid)); deleteIndex(aTerm,indexDir); } |
閫氳繃鏂伴椈鐨処D,灝卞彲浠ュ垹闄や竴鏉℃柊闂?
濡傛灉闇瑕佹洿鏂版柊闂?濡備綍鏇存柊绱㈠紩鍝? 鏇存柊绱㈠紩闇瑕佸厛鍒犻櫎绱㈠紩鐒跺悗鏂板緩绱㈠紩2涓楠?鍏跺疄灝辨槸鎶婁笂闈㈢殑浠g爜緇勫悎璧鋒潵,渚嬪鏇存柊涓鏉℃柊闂?
public static void updateNewsInfoIndex(NewsItem aNews) { if (null == aNews) { return; } deleteNewsInfoIndex(aNews.getNid()); makeNewsInfoIndex(aNews); } |
鑷蟲,绱㈠紩鐨勫緩绔嬫洿鏂板拰鍒犻櫎灝卞憡涓孌佃惤浜?鍏朵腑鎵歸噺鏇存柊鏂伴椈鐨勪唬鐮佸涓?
(鎵歸噺鏇存柊搴旇鍦ㄨ闂漢鏁板皯鎴栬呭悗鍙扮▼搴忓湪澶滈棿鎵ц)
public static void makeAllNewsInfoIndex(List newsList) { List terms = new ArrayList(); List docs = new ArrayList(); for (int i = 0; i < newsList.size(); i++) deleteIndex(terms,indexDir); |
Iterator it = list.iterator(); while(it.hasNext()){ 銆//using “it.next();”do some businesss logic } |
![]() |
//榪唬鍣ㄨ鑹詫紝浠呬粎瀹氫箟浜嗛亶鍘嗘帴鍙?br />
public interface Iterator { 銆boolean hasNext(); 銆Object next(); 銆void remove(); } //瀹瑰櫒瑙掕壊錛岃繖閲屼互List涓轟緥銆傚畠涔熶粎浠呮槸涓涓帴鍙o紝灝變笉緗楀垪鍑烘潵浜?br /> //鍏蜂綋瀹瑰櫒瑙掕壊錛屼究鏄疄鐜頒簡List鎺ュ彛鐨?a class="bluekey" target="_blank">ArrayList絳夌被銆備負浜嗙獊鍑洪噸鐐硅繖閲屾寚緗楀垪鍜岃凱浠e櫒鐩稿叧鐨勫唴瀹?br /> //鍏蜂綋榪唬鍣ㄨ鑹詫紝瀹冩槸浠ュ唴閮ㄧ被鐨勫艦寮忓嚭鏉ョ殑銆侫bstractList鏄負浜嗗皢鍚勪釜鍏蜂綋瀹瑰櫒瑙掕壊鐨?a class="bluekey" target="_blank">鍏叡閮ㄥ垎鎻愬彇鍑烘潵鑰屽瓨鍦ㄧ殑銆?br /> public abstract class AbstractList extends AbstractCollection implements List { …… //榪欎釜渚挎槸璐熻矗鍒涘緩鍏蜂綋榪唬鍣ㄨ鑹茬殑宸ュ巶鏂規(guī)硶 public Iterator iterator() { 銆return new Itr(); } //浣滀負鍐呴儴綾葷殑鍏蜂綋榪唬鍣ㄨ鑹?br /> private class Itr implements Iterator { 銆int cursor = 0; 銆int lastRet = -1; 銆int expectedModCount = modCount; 銆public boolean hasNext() { 銆銆return cursor != size(); 銆} 銆public Object next() { 銆銆checkForComodification(); 銆銆try { 銆銆銆Object next = get(cursor); 銆銆銆lastRet = cursor++; 銆銆銆return next; 銆銆} catch(IndexOutOfBoundsException e) { 銆銆銆checkForComodification(); 銆銆銆throw new NoSuchElementException(); 銆銆} 銆} 銆public void remove() { 銆銆if (lastRet == -1) 銆銆銆throw new IllegalStateException(); 銆銆銆checkForComodification(); 銆銆try { 銆銆銆AbstractList.this.remove(lastRet); 銆銆銆if (lastRet < cursor) 銆銆銆銆cursor--; 銆銆銆lastRet = -1; 銆銆銆expectedModCount = modCount; 銆銆} catch(IndexOutOfBoundsException e) { 銆銆銆throw new ConcurrentModificationException(); 銆銆} 銆} 銆final void checkForComodification() { 銆銆if (modCount != expectedModCount) 銆銆銆throw new ConcurrentModificationException(); 銆} } |
杞崲鍘熷垯錛?br />
浠庝綆綺懼害鍚戦珮綺懼害杞崲
byte 銆乻hort銆乮nt銆乴ong銆乫loat銆乨ouble銆乧har
娉細涓や釜char鍨嬭繍綆楁椂錛岃嚜鍔ㄨ漿鎹負int鍨嬶紱褰揷har涓庡埆鐨勭被鍨嬭繍綆楁椂錛屼篃浼氬厛鑷姩杞崲涓篿nt鍨嬬殑錛屽啀鍋氬叾瀹冪被鍨嬬殑鑷姩杞崲
鍩烘湰綾誨瀷鍚戠被綾誨瀷杞崲
姝e悜杞崲錛?br /> 閫氳繃綾誨寘瑁呭櫒鏉ew鍑轟竴涓柊鐨勭被綾誨瀷鐨勫彉閲?br /> Integer a= new Integer(2);
鍙嶅悜杞崲錛?br />
閫氳繃綾誨寘瑁呭櫒鏉ヨ漿鎹?br />
int b=a.intValue();
綾葷被鍨嬪悜瀛楃涓茶漿鎹?/p>
姝e悜杞崲錛?br />
鍥犱負姣忎釜綾婚兘鏄痮bject綾葷殑瀛愮被錛岃屾墍鏈夌殑object綾婚兘鏈変竴涓猼oString()鍑芥暟錛屾墍浠ラ氳繃toString()鍑芥暟鏉ヨ漿鎹㈠嵆鍙?/p>
鍙嶅悜杞崲錛?br />
閫氳繃綾誨寘瑁呭櫒new鍑轟竴涓柊鐨勭被綾誨瀷鐨勫彉閲?br />
eg1: int i=Integer.valueOf(“123”).intValue()
璇存槑錛氫笂渚嬫槸灝嗕竴涓瓧絎︿覆杞寲鎴愪竴涓狪nteger瀵硅薄錛岀劧鍚庡啀璋冪敤榪欎釜瀵硅薄鐨刬ntValue()鏂規(guī)硶榪斿洖鍏跺搴旂殑int鏁板箋?br />
eg2: float f=Float.valueOf(“123”).floatValue()
璇存槑錛氫笂渚嬫槸灝嗕竴涓瓧絎︿覆杞寲鎴愪竴涓狥loat瀵硅薄錛岀劧鍚庡啀璋冪敤榪欎釜瀵硅薄鐨刦loatValue()鏂規(guī)硶榪斿洖鍏跺搴旂殑float鏁板箋?br />
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
璇存槑錛氫笂渚嬫槸灝嗕竴涓瓧絎︿覆杞寲鎴愪竴涓狟oolean瀵硅薄錛岀劧鍚庡啀璋冪敤榪欎釜瀵硅薄鐨刡ooleanValue()鏂規(guī)硶榪斿洖鍏跺搴旂殑boolean鏁板箋?br />
eg4:Double d=Double.valueOf(“123”).doubleValue()
璇存槑錛氫笂渚嬫槸灝嗕竴涓瓧絎︿覆杞寲鎴愪竴涓狣ouble瀵硅薄錛岀劧鍚庡啀璋冪敤榪欎釜瀵硅薄鐨刣oubleValue()鏂規(guī)硶榪斿洖鍏跺搴旂殑double鏁板箋?br />
eg5: long l=Long.valueOf(“123”).longValue()
璇存槑錛氫笂渚嬫槸灝嗕竴涓瓧絎︿覆杞寲鎴愪竴涓狶ong瀵硅薄錛岀劧鍚庡啀璋冪敤榪欎釜瀵硅薄鐨刲ongValue()鏂規(guī)硶榪斿洖鍏跺搴旂殑long鏁板箋?br />
eg6: char=Character.valueOf(“123”).charValue()
璇存槑錛氫笂渚嬫槸灝嗕竴涓瓧絎︿覆杞寲鎴愪竴涓狢haracter瀵硅薄錛岀劧鍚庡啀璋冪敤榪欎釜瀵硅薄鐨刢harValue()鏂規(guī)硶榪斿洖鍏跺搴旂殑char鏁板箋?/p>
鍩烘湰綾誨瀷鍚戝瓧絎︿覆鐨勮漿鎹?/p>
姝e悜杞崲錛?br />
濡傦細int a=12;
String b;
b=a+””;
鍙嶅悜杞崲錛?br />
閫氳繃綾誨寘瑁呭櫒
eg1:
int i=Integer.parseInt(“123”)
璇存槑錛氭鏂規(guī)硶鍙兘閫傜敤浜庡瓧絎︿覆杞寲鎴愭暣鍨嬪彉閲?br />
eg2: float f=Float.valueOf(“123”).floatValue()
璇存槑錛氫笂渚嬫槸灝嗕竴涓瓧絎︿覆杞寲鎴愪竴涓狥loat瀵硅薄錛岀劧鍚庡啀璋冪敤榪欎釜瀵硅薄鐨刦loatValue()鏂規(guī)硶榪斿洖鍏跺搴旂殑float鏁板箋?br />
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
璇存槑錛氫笂渚嬫槸灝嗕竴涓瓧絎︿覆杞寲鎴愪竴涓狟oolean瀵硅薄錛岀劧鍚庡啀璋冪敤榪欎釜瀵硅薄鐨刡ooleanValue()鏂規(guī)硶榪斿洖鍏跺搴旂殑boolean鏁板箋?br />
eg4:Double d=Double.valueOf(“123”).doubleValue()
璇存槑錛氫笂渚嬫槸灝嗕竴涓瓧絎︿覆杞寲鎴愪竴涓狣ouble瀵硅薄錛岀劧鍚庡啀璋冪敤榪欎釜瀵硅薄鐨刣oubleValue()鏂規(guī)硶榪斿洖鍏跺搴旂殑double鏁板箋?br />
eg5: long l=Long.valueOf(“123”).longValue()
璇存槑錛氫笂渚嬫槸灝嗕竴涓瓧絎︿覆杞寲鎴愪竴涓狶ong瀵硅薄錛岀劧鍚庡啀璋冪敤榪欎釜瀵硅薄鐨刲ongValue()鏂規(guī)硶榪斿洖鍏跺搴旂殑long鏁板箋?br />
eg6: char=Character.valueOf(“123”).charValue()
璇存槑錛氫笂渚嬫槸灝嗕竴涓瓧絎︿覆杞寲鎴愪竴涓狢haracter瀵硅薄錛岀劧鍚庡啀璋冪敤榪欎釜瀵硅薄鐨刢harValue()鏂規(guī)硶榪斿洖鍏跺搴旂殑char鏁板箋?/p>
銆銆1銆乯ava鏁版嵁搴?/font>鎿嶄綔鍩烘湰嫻佺▼
銆銆2銆佸嚑涓父鐢ㄧ殑閲嶈鎶宸э細
銆銆·鍙粴鍔ㄣ佹洿鏂扮殑璁板綍闆?/p>
銆銆·鎵歸噺鏇存柊
銆銆·浜嬪姟澶勭悊
銆銆java鏁版嵁搴?/font>鎿嶄綔鍩烘湰嫻佺▼錛氬彇寰?a target="_blank">鏁版嵁搴?/font>榪炴帴 - 鎵цsql璇彞 - 澶勭悊鎵ц緇撴灉 - 閲婃斁鏁版嵁搴?/font>榪炴帴
銆銆1銆佸彇寰?a target="_blank">鏁版嵁搴?/font>榪炴帴
銆銆1)鐢―riverManager鍙?a target="_blank">鏁版嵁搴?/font>榪炴帴
銆銆渚嬪瓙
銆銆String className,url,uid,pwd;
銆銆className = "oracle.jdbc.driver.OracleDriver";
銆銆url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr;
銆銆uid = "system";
銆銆pwd = "manager";
銆銆Class.forName(className);
銆銆Connection cn = DriverManager.getConnection(url,uid,pwd);
銆銆2)鐢╦ndi(java鐨勫懡鍚嶅拰鐩綍鏈嶅姟)鏂瑰紡
銆銆渚嬪瓙
銆銆String jndi = "jdbc/db";
銆銆Context ctx = (Context) new InitialContext().lookup("java:comp/env");
銆銆DataSource ds = (DataSource) ctx.lookup(jndi);
銆銆Connection cn = ds.getConnection();
銆銆澶氱敤浜巎sp涓?/p>
銆銆2銆佹墽琛宻ql璇彞
銆銆1)鐢⊿tatement鏉ユ墽琛宻ql璇彞
銆銆String sql;
銆銆Statement sm = cn.createStatement();
銆銆sm.executeQuery(sql); // 鎵ц鏁版嵁鏌ヨ璇彞(select)
銆銆sm.executeUpdate(sql); // 鎵ц鏁版嵁鏇存柊璇彞(delete銆乽pdate銆乮nsert銆乨rop絳?statement.close();
銆銆2)鐢≒reparedStatement鏉ユ墽琛宻ql璇彞
銆銆String sql;
銆銆sql = "insert into user (id,name) values (?,?)";
銆銆PreparedStatement ps = cn.prepareStatement(sql);
銆銆ps.setInt(1,xxx);
銆銆ps.setString(2,xxx);
銆銆...
銆銆ResultSet rs = ps.executeQuery(); // 鏌ヨ
銆銆int c = ps.executeUpdate(); // 鏇存柊
銆銆3銆佸鐞嗘墽琛岀粨鏋?/strong>
銆銆鏌ヨ璇彞錛岃繑鍥炶褰曢泦ResultSet
銆銆鏇存柊璇彞錛岃繑鍥炴暟瀛楋紝琛ㄧず璇ユ洿鏂板獎鍝嶇殑璁板綍鏁?/p>
銆銆ResultSet鐨勬柟娉?/p>
銆銆1銆乶ext()錛屽皢娓告爣寰鍚庣Щ鍔ㄤ竴琛岋紝濡傛灉鎴愬姛榪斿洖true;鍚﹀垯榪斿洖false
銆銆2銆乬etInt("id")鎴杇etSting("name")錛岃繑鍥炲綋鍓嶆父鏍囦笅鏌愪釜瀛楁鐨勫?/p>
銆銆4銆侀噴鏀捐繛鎺?/strong>
銆銆cn.close();
銆銆涓鑸紝鍏堝叧闂璕esultSet錛岀劧鍚庡叧闂璖tatement(鎴栬匬reparedStatement);鏈鍚庡叧闂瑿onnection
銆銆鍙粴鍔ㄣ佹洿鏂扮殑璁板綍闆?/p>
銆銆1銆佸垱寤哄彲婊氬姩銆佹洿鏂扮殑Statement
銆銆Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY);
銆銆璇tatement鍙栧緱鐨凴esultSet灝辨槸鍙粴鍔ㄧ殑
銆銆2銆佸垱寤篜reparedStatement鏃舵寚瀹氬弬鏁?/p>
銆銆PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
銆銆ResultSet.absolute(9000);
銆銆·鎵歸噺鏇存柊
銆銆1銆丼tatement
銆銆Statement sm = cn.createStatement();
銆銆sm.addBatch(sql1);
銆銆sm.addBatch(sql2);
銆銆...
銆銆sm.executeBatch()
銆銆涓涓猄tatement瀵硅薄錛屽彲浠ユ墽琛屽涓猻ql璇彞浠ュ悗錛屾壒閲忔洿鏂般傝繖澶氫釜璇彞鍙互鏄痙elete銆乽pdate銆乮nsert絳夋垨鍏兼湁
銆銆2銆丳reparedStatement
銆銆PreparedStatement ps = cn.preparedStatement(sql);
銆銆{
銆銆ps.setXXX(1,xxx);
銆銆...
銆銆ps.addBatch();
銆銆}
銆銆ps.executeBatch();
銆銆涓涓狿reparedStatement錛屽彲浠ユ妸涓涓猻ql璇彞錛屽彉鎹㈠弬鏁板嬈℃墽琛岋紝涓嬈℃洿鏂般?/p>
銆銆·浜嬪姟鐨勫鐞?/p>
銆銆1銆佸叧闂瑿onnection鐨勮嚜鍔ㄦ彁浜?/p>
銆銆cn.setAutoCommit(false);
銆銆2銆佹墽琛屼竴緋誨垪sql璇彞
銆銆瑕佺偣錛氭墽琛屾瘡涓涓柊鐨剆ql璇彞鍓嶏紝涓婁竴嬈℃墽琛宻ql璇彞鐨凷tatement(鎴栬匬reparedStatemet)蹇呴』鍏坈lose
銆銆Statement sm ;
銆銆sm = cn.createStatement(insert into user...);
銆銆sm.executeUpdate();
銆銆sm.close();
銆銆sm = cn.createStatement("insert into corp...);
銆銆sm.executeUpdate();
銆銆sm.close();
銆銆3銆佹彁浜?/p>
銆銆cn.commit();
銆銆4銆佸鏋滃彂鐢熷紓甯革紝閭d箞鍥炴粴
銆銆cn.rollback();