select userenv('language') from dual
Oracle/PLSQL: UserEnv Function
In Oracle/PLSQL, the userenv function can be used to retrieve information about the current Oracle session. Although this function still exists in Oracle for backwards compatibility, it is recommended that you use the sys_context function instead.
The syntax for the userenv function is:
userenv( parameter )
parameter is the value to return from the current Oracle session. The possible values are:
Parameter |
Explanation |
CLIENT_INFO |
Returns user session information stored using the DBMS_APPLICATION_INFO package |
ENTRYID |
Available auditing entry identifier |
INSTANCE |
The identifier number of the current instance |
ISDBA |
Returns TRUE if the user has DBA privileges. Otherwise, it will return FALSE. |
LANG |
The ISO abbreviation for the language |
LANGUAGE |
The language, territory, and character of the session. In the following format: ???? language_territory.characterset |
SESSIONID |
The identifier of the auditing session |
TERMINAL |
The OS identifier of the current session |
For example:
userenv('ENTRYID') |
would return FALSE |
userenv('LANGUAGE') |
would return 'AMERICAN_AMERICA.WE8DEC' |
posted @
2007-08-24 11:31 華夢行 閱讀(1204) |
評論 (0) |
編輯 收藏
摘要: javaScript技巧集合
事件源對象
event.srcElement.tagName event.srcElement.type
捕獲釋放 event.srcElement.setCapture();? eve...
閱讀全文
posted @
2007-08-24 11:13 華夢行 閱讀(274) |
評論 (0) |
編輯 收藏
關(guān)鍵字: ? hibernate????
Session.load/get方法均可以根據(jù)指定的實(shí)體類和id從數(shù)據(jù)庫讀取記錄,并返回與之對應(yīng)的實(shí)體對象。其區(qū)別在于:
- 如果未能發(fā)現(xiàn)符合條件的記錄,get方法返回null,而load方法會(huì)拋出一個(gè)ObjectNotFoundException。
-
Load方法可返回實(shí)體的代理類實(shí)例,而get方法永遠(yuǎn)直接返回實(shí)體類。
-
load方法可以充分利用內(nèi)部緩存和二級緩存中的現(xiàn)有數(shù)據(jù),而get方法則僅僅在內(nèi)部緩存中進(jìn)行數(shù)據(jù)查找,如沒有發(fā)現(xiàn)對應(yīng)數(shù)據(jù),將越過二級緩存,直接調(diào)用SQL完成數(shù)據(jù)讀取。
Session在加載實(shí)體對象時(shí),將經(jīng)過的過程:
- 首先,Hibernate中維持了兩級緩存。第一級緩存由Session實(shí)例維護(hù),其中保持了Session當(dāng)前所有關(guān)聯(lián)實(shí)體的數(shù)據(jù),也稱為內(nèi)部緩存。而第二級緩存則存在于SessionFactory層次,由當(dāng)前所有由本SessionFactory構(gòu)造的Session實(shí)例共享。出于性能考慮,避免無謂的數(shù)據(jù)庫訪問,Session在調(diào)用數(shù)據(jù)庫查詢功能之前,會(huì)先在緩存中進(jìn)行查詢。首先在第一級緩存中,通過實(shí)體類型和id進(jìn)行查找,如果第一級緩存查找命中,且數(shù)據(jù)狀態(tài)合法,則直接返回。
- 之后,Session會(huì)在當(dāng)前“NonExists”記錄中進(jìn)行查找,如果“NonExists”記錄中存在同樣的查詢條件,則返回null?!癗onExists”記錄了當(dāng)前Session實(shí)例在之前所有查詢操作中,未能查詢到有效數(shù)據(jù)的查詢條件(相當(dāng)于一個(gè)查詢黑名單列表)。如此一來,如果Session中一個(gè)無效的查詢條件重復(fù)出現(xiàn),即可迅速作出判斷,從而獲得最佳的性能表現(xiàn)。
- 對于load方法而言,如果內(nèi)部緩存中未發(fā)現(xiàn)有效數(shù)據(jù),則查詢第二級緩存,如果第二級緩存命中,則返回。
- 如在緩存中未發(fā)現(xiàn)有效數(shù)據(jù),則發(fā)起數(shù)據(jù)庫查詢操作(Select SQL),如經(jīng)過查詢未發(fā)現(xiàn)對應(yīng)記錄,則將此次查詢的信息在“NonExists”中加以記錄,并返回null。
- 根據(jù)映射配置和Select SQL得到的ResultSet,創(chuàng)建對應(yīng)的數(shù)據(jù)對象。
- 將其數(shù)據(jù)對象納入當(dāng)前Session實(shí)體管理容器(一級緩存)。
- 執(zhí)行Interceptor.onLoad方法(如果有對應(yīng)的Interceptor)。
- 將數(shù)據(jù)對象納入二級緩存。
- 如果數(shù)據(jù)對象實(shí)現(xiàn)了LifeCycle接口,則調(diào)用數(shù)據(jù)對象的onLoad方法。
- 返回?cái)?shù)據(jù)對象。
|
posted @
2007-08-24 08:42 華夢行 閱讀(88) |
評論 (0) |
編輯 收藏
public ITM_BuyContract getBuyContractById(String id) {
??????? ITM_BuyContract bc = null;
??????? Session session = HibernateUtil.getSession();
??????? bc = (ITM_BuyContract) session.get(ITM_BuyContract.class,id);
??????? return bc;
??? }
posted @
2007-08-23 15:39 華夢行 閱讀(93) |
評論 (0) |
編輯 收藏
做webservice 盡量將具體的實(shí)現(xiàn)寫在javabean里,這樣可以減少客戶網(wǎng)站和webservice的耦合,就是說你修改了具體的實(shí)現(xiàn)之后,客戶網(wǎng)站并不需要重新部署,從而提高開發(fā)效率提高
posted @
2007-08-23 14:56 華夢行 閱讀(99) |
評論 (0) |
編輯 收藏
摘要:
閱讀全文
posted @
2007-08-23 09:15 華夢行 閱讀(17) |
評論 (0) |
編輯 收藏
function strLen(str) {
??? if (!str) return 0;
??? var len = 0;
??? var pattern = /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/;
??? for (var i = 0, j = str.length; i < j; i++) {
??????? if (pattern.test(str.charAt(i))) {
??????????? len += 2;
??????? } else {
??????????? len++;
??????? }
??? }
??? return len;
}
posted @
2007-08-22 13:38 華夢行 閱讀(161) |
評論 (0) |
編輯 收藏
/*
?* ViewUploadFile.java
?*
?* Created on 2006年2月4日, 上午1:29
?*/
package path.system.manager;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.hibernate.Session;
import system.entity.CRM_UploadFile;
import.FileStorageService;
public class ViewUploadFile extends HttpServlet {
??? private FileInputStream isFile = null;
???
??? /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
???? * @param request servlet request
???? * @param response servlet response
???? */
??? protected void processRequest(HttpServletRequest request, HttpServletResponse response)
??? throws ServletException, IOException {
??????? String szCoObject=request.getParameter("CoObject");
??????? String szID=request.getParameter("ID");
??????? String szMode = request.getParameter("Mode");
???????
??????? //清空緩沖
??????? response.reset();
???????
??????? OutputStream osOut = response.getOutputStream();
???????
??????? if(szID == null || szID.equals("") || szID.equals("0"))
??????? {??
??????????? byte[] cFileData = this.getNoDate (szCoObject);
???????????
??????????? this.isFile.read(cFileData);
??????????? osOut.write(cFileData);
??????? }
??????? else
??????? {
??????????? Session ssSession = HibernateUtil.getSession();
??????????? CRM_UploadFile csUpload;
??????????? csUpload = (CRM_UploadFile)ssSession.load(CRM_UploadFile.class,Integer.valueOf(szID));
??????????? String szFileName =csUpload.getFileName();
??????????? if (szFileName==null) szFileName = "";
??????????? String szRightName = new String( szFileName.getBytes(), "ISO8859_1" );????? //中文文件名處理
??????????? String szFileSize = csUpload.getFileSize().toString();
??????????? String urlFileName = csUpload.getUrlFileName();
///輸出到網(wǎng)頁
??????????? if ("0".equals(szFileSize)) {
??????????????? byte[] cFileData = this.getNoDate(szCoObject);
??????????????? this.isFile.read(cFileData);
??????????????? osOut.write(cFileData);
??????????? } else {
??????????????? if(szMode.equals("Download")) {
??????????????????????? response.setContentType("application/x-msdownload;");?????????? //下載類型
??????????????????????? response.setHeader("Content-Disposition","attachment; filename=" + szRightName);
??????????????? } else {
??????????????????????? response.setContentType(csUpload.getContentType());
??????????????????????? response.setHeader("Content-Disposition","filename=" + szRightName);
??????????????? }
??????????????? response.setHeader("content-length", szFileSize);
??????????????? //java.sql.Blob blob = csUpload.getBinaryData();
??????????????? File file = new File(FileStorageService.getRootPath() + urlFileName);
??????????????? if (!file.exists())
??????????????????? return;
???????????????
??????????????? InputStream bis = new BufferedInputStream(new FileInputStream(file));
??????????????? byte[] buffer = new byte[2048];
??????????????? for (int i = bis.read(buffer); i > 0; i = bis.read(buffer))
??????????????????? osOut.write(buffer, 0, i);
??????????????? bis.close();
???????????????????
??????????? }
??????? }
???????
??????? //防止超時(shí)
??????? //response.setStatus( response.SC_OK );
??????? response.flushBuffer();
??? }
???
??? private byte[] getNoDate (String szCoObject) throws IOException{
??????? String szFileName="";
??????? if(szCoObject.equals("Employee"))
??????????? szFileName = getServletContext().getRealPath("/images/Employee/NoPhoto.gif");
??????? else
??????????? szFileName = getServletContext().getRealPath("/images/Commodity/NoPhoto.gif");
??????? this.isFile= new FileInputStream(szFileName);
??????? int nSize = this.isFile.available();
??????? byte[] cFileData = new byte[nSize];
??????? return cFileData;
??? }
??? // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
??? /** Handles the HTTP <code>GET</code> method.
???? * @param request servlet request
???? * @param response servlet response
???? */
??? protected void doGet(HttpServletRequest request, HttpServletResponse response)
??? throws ServletException, IOException {
??????? processRequest(request, response);
??? }
???
??? /** Handles the HTTP <code>POST</code> method.
???? * @param request servlet request
???? * @param response servlet response
???? */
??? protected void doPost(HttpServletRequest request, HttpServletResponse response)
??? throws ServletException, IOException {
??????? processRequest(request, response);
??? }
???
??? /** Returns a short description of the servlet.
???? */
??? public String getServletInfo() {
??????? return "Short description";
??? }
??? // </editor-fold>
}
posted @
2007-08-21 13:24 華夢行 閱讀(110) |
評論 (0) |
編輯 收藏
public final int read(byte[]?b)
throws IOException
- 從所包含的輸入流中讀取一定數(shù)量的字節(jié),并將它們存儲(chǔ)到緩沖區(qū)數(shù)組
b
中。以整數(shù)形式返回實(shí)際讀取的字節(jié)數(shù)。在輸入數(shù)據(jù)可用、檢測到文件末尾 (end of file) 或拋出異常之前,此方法將一直阻塞。
如果 b
為 null,則拋出 NullPointerException
。如果 b
的長度為零,則不讀取字節(jié)并返回 0
;否則試圖讀取至少一個(gè)字節(jié)。如果因?yàn)樵摿髟谖募┪捕鵁o字節(jié)可用,則返回值 -1
;否則至少讀取一個(gè)字節(jié)并將其存儲(chǔ)到 b
中。
將讀取的第一個(gè)字節(jié)存儲(chǔ)到元素 b[0]
中,將下一個(gè)字節(jié)存儲(chǔ)到 b[1]
中,依此類推。讀取的字節(jié)數(shù)至多等于 b
的長度。設(shè) k
為實(shí)際讀取的字節(jié)數(shù);這些字節(jié)將存儲(chǔ)在從 b[0]
到 b[k-1]
的元素中,b[k]
到 b[b.length-1]
的元素不受影響。
如果因?yàn)槲募┪惨酝獾钠渌蚨鵁o法讀取第一個(gè)字節(jié),則拋出 IOException
。尤其在輸入流已關(guān)閉的情況下,將拋出 IOException
。
read(b)
方法與以下方法的效果相同:
read(b, 0, b.length)
posted @
2007-08-21 12:43 華夢行 閱讀(8178) |
評論 (0) |
編輯 收藏
import java.io.*;
import java.net.*;
public class Test {
??? public boolean saveUrlAs(String photoUrl, String fileName) {
??????? //此方法只能用于HTTP協(xié)議
??????? try {
??????????? URL url = new URL(photoUrl);
??????????? HttpURLConnection connection = (HttpURLConnection) url.
??????????????????? openConnection();
??????????? DataInputStream in = new DataInputStream(connection.getInputStream());
??????????? DataOutputStream out = new DataOutputStream(new FileOutputStream(fileName));
??????????? byte[] buffer = new byte[4096];
??????????? int count = 0;
??????????? while ((count = in.read(buffer)) > 0) {
??????????????? out.write(buffer, 0, count);
??????????? }
??????????? out.close();
??????????? in.close();
??????????? return true;
??????? } catch (Exception e) {
??????????? return false;
??????? }
??? }
???
??? public String getDocumentAt(String urlString) {
??????? //此方法兼容HTTP和FTP協(xié)議
??????? StringBuffer document = new StringBuffer();
??????? try {
??????????? URL url = new URL(urlString);
??????????? URLConnection conn = url.openConnection();
??????????? BufferedReader reader = new BufferedReader(new InputStreamReader(
??????????????????? conn.getInputStream()));
??????????? String line = null;
??????????? while ((line = reader.readLine()) != null) {
??????????????? document.append(line + "\n");
??????????? }
??????????? reader.close();
??????? }catch (MalformedURLException e) {
??????????? System.out.println("Unable to connect to URL: " + urlString);
??????? }catch (IOException e) {
??????????? System.out.println("IOException when connecting to URL: " +
??????????????????? urlString);
??????? }
??????? return document.toString();
??? }
???
??? public static void main(String[] args) throws IOException {
??????? Test test = new Test();
??????? String photoUrl = "??????? String fileName = photoUrl.substring(photoUrl.lastIndexOf("/"));
??????? String filePath = "c:";
??????? boolean flag = test.saveUrlAs(photoUrl, filePath + fileName);
??????? System.out.println("Run ok!\nGet URL file " + flag);
??? }
}
?
posted @
2007-08-21 11:30 華夢行 閱讀(917) |
評論 (0) |
編輯 收藏
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
/*
?* hello.java
?*
?* Created on 2007年8月3日, 上午11:15
?*
?* To change this template, choose Tools | Template Manager
?* and open the template in the editor.
?*/
/**
?*
?* @author ljl
?*/
public class hello {
???
??? /** Creates a new instance of hello */
??? public hello() {
??? }
??? public static void main(String s[]) throws Exception{
??????? String sss="Sogood";
?????? // System.out.print(sss.substring(0,4));
??????? ReadURL("??? }
??? public static void ReadURL(String URLName) throws Exception // 如果發(fā)生異常則向上拋出
??? {
??????? int HttpResult; // 服務(wù)器返回的狀態(tài)
??????? URL url =new URL(URLName); // 創(chuàng)建URL
???????
??????? URLConnection urlconn = url.openConnection(); // 試圖連接并取得返回狀態(tài)碼
??????? urlconn.connect();
??????? HttpURLConnection httpconn =(HttpURLConnection)urlconn;
??????? HttpResult = httpconn.getResponseCode();
??????? System.out.println(HttpResult);
??????? if(HttpResult != HttpURLConnection.HTTP_OK) // 不等于HTTP_OK說明連接不成功
?????????? System.out.print("fail");
??????? else {
??????????? int filesize = urlconn.getContentLength(); // 取數(shù)據(jù)長度
??????????? System.out.println(filesize);
??????????? InputStreamReader isReader = new InputStreamReader(urlconn.getInputStream());
??????????? char[] buffer = new char[2048]; // 創(chuàng)建存放輸入流的緩沖
??????????? int num = 0; // 讀入的字節(jié)數(shù)
??????????? while(num>-1) {
??????????????? num = isReader.read(buffer); // 讀入到緩沖區(qū)
??????????????? if(num < 0) break; // 已經(jīng)讀完
??????????????? System.out.print("suc");
????????????? System.out.println(new String(buffer,0,num)); // 顯示出來
??????????? }
??????????? isReader.close();//關(guān)閉輸入流
??????? }
??? }
???
???
}
posted @
2007-08-21 10:38 華夢行 閱讀(981) |
評論 (0) |
編輯 收藏
404:服務(wù)器找不到指定的資源,請求的網(wǎng)頁不存在(譬如瀏覽器請求的網(wǎng)頁被刪除或者移位,但不排除日后該鏈接有效的可能性);32C站長資訊
410:請求的網(wǎng)頁不存在(注意:410表示永久性,而404表示臨時(shí)性);32C站長資訊
200:服務(wù)器成功返回請求的網(wǎng)頁;32C站長資訊
301:網(wǎng)址永久性重定向32C站長資訊
302:網(wǎng)址臨時(shí)性重定向
posted @
2007-08-21 10:31 華夢行 閱讀(222) |
評論 (0) |
編輯 收藏
試一試修改server.xml文件,路徑在:
server\default\deploy\jbossweb-tomcat55.sar
在host標(biāo)簽中增加
<Context cookies="true" crossContext="true" path="/test" docBase="z:\test" />
請問一下,我們在tomcat中的server.xml中每設(shè)置一個(gè)<Context...../>比如:
<Context path="/oa" docBase="oa" debug="4" reloadable="true" crossContext="true"> </Context>
相應(yīng)的工程中的.java文件修改了,可以自動(dòng)重新加載。。。
其他工程修改就不行,,又要再加一條相應(yīng)的語句,,不知道有沒有其他的方法只要設(shè)置一下,就會(huì)偵聽所有的工程,,,任何一個(gè)工程修改,,都可以自動(dòng)重新加載。。。謝謝。。
我用的是myeclipse+eclipse+tomcat
posted @
2007-08-21 09:48 華夢行 閱讀(441) |
評論 (0) |
編輯 收藏
Singleton
模式主要作用是保證在
Java
應(yīng)用程序中,一個(gè)類
Class
只有一個(gè)實(shí)例存在。
一般
Singleton
模式通常有幾種種形式:
第一種形式:定義一個(gè)類,它的構(gòu)造函數(shù)為
private
的,它有一個(gè)
static
的
private
的該類變量,在類初始化時(shí)實(shí)例話,通過一個(gè)
public
的
getInstance
方法獲取對它的引用
,
繼而調(diào)用其中的方法。
public class Singleton {
private Singleton(){}
//
在自己內(nèi)部定義自己一個(gè)實(shí)例,是不是很奇怪?
//
注意這是
private
只供內(nèi)部調(diào)用
private static Singleton instance = new Singleton();
//
這里提供了一個(gè)供外部訪問本
class
的靜態(tài)方法,可以直接訪問
public static Singleton getInstance() {
return instance;
}
}
?
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//
這個(gè)方法比上面有所改進(jìn),不用每次都進(jìn)行生成對象,只是第一次
//
使用時(shí)生成實(shí)例,提高了效率!
if (instance==null)
instance
=
new Singleton();
return instance;
}
}
posted @
2007-08-20 14:01 華夢行 閱讀(563) |
評論 (0) |
編輯 收藏
swtich
是否能作用在
byte
上,是否能作用在
long
上,是否能作用在
String
上
?
switch
(
expr1
)中,
expr1
是一個(gè)整數(shù)表達(dá)式。因此傳遞給
switch
和
case
語句的參數(shù)應(yīng)該是
int
、
short
、
char
或者
byte
。
long,string
都不能作用于
swtich
。
posted @
2007-08-20 13:52 華夢行 閱讀(3301) |
評論 (0) |
編輯 收藏
try {}
里有一個(gè)
return
語句,那么緊跟在這個(gè)
try
后的
finally {}
里的
code
會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在
return
前還是后
?
會(huì)執(zhí)行,在
return
前執(zhí)行。
posted @
2007-08-20 13:45 華夢行 閱讀(184) |
評論 (0) |
編輯 收藏
Overload
和
Override
的區(qū)別。
Overloaded
的方法是否可以改變返回值的類型
?
方法的重寫
Overriding
和重載
Overloading
是
Java
多態(tài)性的不同表現(xiàn)。重寫
Overriding
是父類與子類之間多態(tài)性的一種表現(xiàn),重載
Overloading
是一個(gè)類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫
(Overriding)
。子類的對象使用這個(gè)方法時(shí),將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個(gè)類中定義了多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類型,則稱為方法的重載
(Overloading)
。
Overloaded
的方法是可以改變返回值的類型
posted @
2007-08-20 13:40 華夢行 閱讀(237) |
評論 (0) |
編輯 收藏
數(shù)組有沒有
length()
這個(gè)方法
? String
有沒有
length()
這個(gè)方法?
數(shù)組沒有
length()
這個(gè)方法,有
length
的屬性。
String
有有
length()
這個(gè)方法。
posted @
2007-08-20 13:39 華夢行 閱讀(1942) |
評論 (0) |
編輯 收藏
sleep:在睡覺,要睡夠了你才叫得醒 wait:在等你叫它
|
TOP
|
回復(fù)人:Polarislee(北極星)(灌水是我無言的抗議)??一星(中級)??信譽(yù):110??????2005-3-1 13:35:27??得分:20
|
|
sleep是Thread類的靜態(tài)方法。sleep的作用是讓線程休眠制定的時(shí)間,在時(shí)間到達(dá)時(shí)恢復(fù),也就是說sleep將在接到時(shí)間到達(dá)事件事恢復(fù)線程執(zhí)行,例如:
try{ System.out.println("I'm going to bed"); Thread.sleep(1000); System.out.println("I wake up"); } catch(IntrruptedException e) { }
wait是Object的方法,也就是說可以對任意一個(gè)對象調(diào)用wait方法,調(diào)用wait方法將會(huì)將調(diào)用者的線程掛起,直到其他線程調(diào)用同一個(gè)對象的notify方法才會(huì)重新激活調(diào)用者,例如:
//Thread 1
try{ obj.wait();//suspend thread until obj.notify() is called } catch(InterrputedException e) { }
|
posted @
2007-08-20 13:23 華夢行 閱讀(542) |
評論 (0) |
編輯 收藏
16
,
Collection
和
Collections
的區(qū)別。
Collections
是個(gè)
java.util
下的類,它包含有各種有關(guān)集合操作的靜態(tài)方法。
Collection
是個(gè)
java.util
下的接口,它是各種集合結(jié)構(gòu)的父接口。
posted @
2007-08-20 13:17 華夢行 閱讀(153) |
評論 (0) |
編輯 收藏