<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,  comments - 11,  trackbacks - 0
     
    ---- 在Oracle數據庫系統中,用戶如果要以特權用戶身份(INTERNAL/SYSDBA/SYSOPER)登錄Oracle數據庫可以有兩種身份驗證的方法:即使用與操作系統集成的身份驗證或使用Oracle數據庫的密碼文件進行身份驗證。因此,管理好密碼文件,對于控制授權用戶從遠端或本機登錄Oracle數據庫系統,執行數據庫管理工作,具有重要的意義。

    ---- Oracle數據庫的密碼文件存放有超級用戶INTERNAL/SYS的口令及其他特權用戶的用戶名/口令,它一般存放在ORACLE_HOME\DATABASE目錄下。

    一、 密碼文件的創建:
    ---- 在使用Oracle Instance Manager創建一數據庫實例的時侯,在ORACLE_HOME\DATABASE目錄下還自動創建了一個與之對應的密碼文件,文件名為PWDSID.ORA,其中SID代表相應的Oracle數據庫系統標識符。此密碼文件是進行初始數據庫管理工作的基礎。在此之后,管理員也可以根據需要,使用工具ORAPWD.EXE手工創建密碼文件,命令格式如下:
    C:\ >ORAPWD FILE=< FILENAME > PASSWORD
    =< PASSWORD > ENTRIES=< MAX_USERS >

    ---- 各命令參數的含義為:
    ---- FILENAME:密碼文件名;

    ---- PASSWORD:設置INTERNAL/SYS帳號的口令;

    ---- MAX_USERS:密碼文件中可以存放的最大用戶數,對應于允許以SYSDBA/SYSOPER權限登錄數據庫的最大用戶數。由于在以后的維護中,若用戶數超出了此限制,則需要重建密碼文件,所以此參數可以根據需要設置得大一些。

    ---- 有了密碼文件之后,需要設置初始化參數REMOTE_LOGIN_PASSWORDFILE來控制密碼文件的使用狀態。

    二、 設置初始化參數REMOTE_LOGIN_PASSWORDFILE:
    ---- 在Oracle數據庫實例的初始化參數文件中,此參數控制著密碼文件的使用及其狀態。它可以有以下幾個選項:
    NONE:指示Oracle系統不使用密碼文件,特權用戶的登錄通過操作系統進行身份驗證;

    EXCLUSIVE:指示只有一個數據庫實例可以使用此密碼文件。只有在此設置下的密碼文件可以包含有除INTERNAL/SYS以外的用戶信息,即允許將系統權限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用戶。

    SHARED:指示可有多個數據庫實例可以使用此密碼文件。在此設置下只有INTERNAL/SYS帳號能被密碼文件識別,即使文件中存有其他用戶的信息,也不允許他們以SYSOPER/SYSDBA的權限登錄。此設置為缺省值。
    ---- 在REMOTE_LOGIN_PASSWORDFILE參數設置為EXCLUSIVE、SHARED情況下,Oracle系統搜索密碼文件的次序為:在系統注冊庫中查找ORA_SID_PWFILE參數值(它為密碼文件的全路徑名);若未找到,則查找ORA_PWFILE參數值;若仍未找到,則使用缺省值ORACLE_HOME\DATABASE\PWDSID.ORA;其中的SID代表相應的Oracle數據庫系統標識符。
    三、 向密碼文件中增加、刪除用戶:
    ---- 當初始化參數REMOTE_LOGIN_PASSWORDFILE設置為EXCLUSIVE時,系統允許除INTERNAL/SYS以外的其他用戶以管理員身份從遠端或本機登錄到Oracle數據庫系統,執行數據庫管理工作;這些用戶名必須存在于密碼文件中,系統才能識別他們。由于不管是在創建數據庫實例時自動創建的密碼文件,還是使用工具ORAPWD.EXE手工創建的密碼文件,都只包含INTERNAL/SYS用戶的信息;為此,在實際操作中,可能需要向密碼文件添加或刪除其他用戶帳號。
    ---- 由于僅被授予SYSOPER/SYSDBA系統權限的用戶才存在于密碼文件中,所以當向某一用戶授予或收回SYSOPER/SYSDBA系統權限時,他們的帳號也將相應地被加入到密碼文件或從密碼文件中刪除。由此,向密碼文件中增加或刪除某一用戶,實際上也就是對某一用戶授予或收回SYSOPER/SYSDBA系統權限。

    ---- 要進行此項授權操作,需使用SYSDBA權限(或INTERNAL帳號)連入數據庫,且初始化參數REMOTE_LOGIN_PASSWORDFILE的設置必須為EXCLUSIVE。具體操作步驟如下:

    創建相應的密碼文件;

    設置初始化參數REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE;

    使用SYSDBA權限登錄:
    CONNECT SYS/internal_user_passsword AS SYSDBA;

    啟動數據庫實例并打開數據庫;

    創建相應用戶帳號,對其授權(包括SYSOPER和SYSDBA):
    授予權限:GRANT SYSDBA TO user_name;
    收回權限:REVOKE SYSDBA FROM user_name;

    現在這些用戶可以以管理員身份登錄數據庫系統了;
    四、 使用密碼文件登錄:
    ---- 有了密碼文件后,用戶就可以使用密碼文件以SYSOPER/SYSDBA權限登錄Oracle數據庫實例了,注意初始化參數REMOTE_LOGIN_PASSWORDFILE應設置為EXCLUSIVE或SHARED。任何用戶以SYSOPER/SYSDBA的權限登錄后,將位于SYS用戶的Schema之下,以下為兩個登錄的例子:
    ---- 1. 以管理員身份登錄:

    ---- 假設用戶scott已被授予SYSDBA權限,則他可以使用以下命令登錄:

    ---- CONNECT scott/tiger AS SYSDBA

    ---- 2. 以INTERNAL身份登錄:

    ---- CONNECT INTERNAL/INTERNAL_PASSWORD

    五、 密碼文件的維護:
    ---- 1. 查看密碼文件中的成員:
    ---- 可以通過查詢視圖V$PWFILE_USERS來獲取擁有SYSOPER/SYSDBA系統權限的用戶的信息,表中SYSOPER/SYSDBA列的取值TRUE/FALSE表示此用戶是否擁有相應的權限。這些用戶也就是相應地存在于密碼文件中的成員。

    ---- 2. 擴展密碼文件的用戶數量:

    ---- 當向密碼文件添加的帳號數目超過創建密碼文件時所定的限制(即ORAPWD.EXE工具的MAX_USERS參數)時,為擴展密碼文件的用戶數限制,需重建密碼文件,具體步驟如下:

    ---- a) 查詢視圖V$PWFILE_USERS,記錄下擁有SYSOPER/SYSDBA系統權限的用戶信息;

    ---- b) 關閉數據庫;

    ---- c) 刪除密碼文件;

    ---- d) 用ORAPWD.EXE新建一密碼文件;

    ---- e) 將步驟a中獲取的用戶添加到密碼文件中。

    ---- 3. 修改密碼文件的狀態:

    ---- 密碼文件的狀態信息存放于此文件中,當它被創建時,它的缺省狀態為SHARED。可以通過改變初始化參數REMOTE_LOGIN_PASSWORDFILE的設置改變密碼文件的狀態。當啟動數據庫事例時,Oracle系統從初始化參數文件中讀取REMOTE_LOGIN_PASSWORDFILE參數的設置;當加載數據庫時,系統將此參數與口令文件的狀態進行比較,如果不同,則更新密碼文件的狀態。若計劃允許從多臺客戶機上啟動數據庫實例,由于各客戶機上必須有初始化參數文件,所以應確保各客戶機上的初始化參數文件的一致性,以避免意外地改變了密碼文件的狀態,造成數據庫登陸的失敗。

    ---- 4. 修改密碼文件的存儲位置:

    ---- 密碼文件的存放位置可以根據需要進行移動,但作此修改后,應相應修改系統注冊庫有關指向密碼文件存放位置的參數或環境變量的設置。

    ---- 5. 刪除密碼文件:

    ---- 在刪除密碼文件前,應確保當前運行的各數據庫實例的初始化參數REMOTE_LOGIN_PASSWORDFILE皆設置為NONE。在刪除密碼文件后,若想要以管理員身份連入數據庫的話,則必須使用操作系統驗證的方法進行登錄。
    posted @ 2007-09-29 12:10 jadmin 閱讀(95) | 評論 (0)編輯 收藏
    1、在計算機 開始--->管理-->服務中沒有看到 OracleOraHome92TNSListener 服務,但服務已經啟動
    2、C:\>lsnrctl start 執行完后報open service error。然后在計算機 開始--->管理-->服務中看到  了 OracleOraHome92TNSListener 服務
    3、運行regedit.exe啟動注冊表編輯器,在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/下的Services和CurrentControlSet/Services下找到OracleOraHome92TNSListener項,在右邊窗口按右鍵,新建/字符串,取名ImagePath。
    雙擊新見的建,在“數值數據”項輸入D:\oracle\ora92\bin\TNSLSNR.EXE(根據你自己的實際情況進行修改),確定完成。
    再次在服務中雙擊打開OracleOraHome92TNSListener的服務看到其“可執行文件的路徑”一欄已經顯示了其正確的值。這時你可以啟動監聽了。
    4、C:>tnsping 數據庫SID。看看tns服務沒有起來。如果沒有起來,用下面的命令
    c:\>lsnrctl
    lsnrctl>start把這個服務起動起來。

    c:\>lsnrctl start 后open service error錯誤消失,但例程中有一個狀態為UNKNOWN,另一個為READY.命令執行成功。

    PL/SQL Developer連接Oracle報錯:ORA-12514: TNS:監聽程序當前無法識別連接描述符中請求的服務

    解決辦法:

    ??首先重啟下對應的數據庫監聽服務(OracleOraDb<?xml:namespace prefix = st1 />10g_home1TNSListener)和數據庫服務(OracleServiceORCL),如果還沒解決,就按下面的進行操作:

    ?? 1.打開%Oracle安裝目錄%/network/admin/listener.ora文件(C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
    ?? 2.
    添加:

    (SID_DESC =

    ??? (GLOBAL_DBNAME = ORCL)

    ??? (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)??

    ??? (SID_NAME = ORCL)

    ??? )
    ?? 3.
    最后文件改成

    SID_LIST_LISTENER =

    (SID_LIST =

    ??? (SID_DESC =

    ????? (SID_NAME = PLSExtProc)

    ????? (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)

    ????? (PROGRAM = extproc)

    ??? )

    ?? (SID_DESC =


    ??? (GLOBAL_DBNAME = ORCL)

    ??? (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)??

    ??? (SID_NAME = ORCL)

    ??? )

    )

    LISTENER =

    (DESCRIPTION_LIST =

    ??? (DESCRIPTION =

    ????? (ADDRESS = (PROTOCOL = TCP)(HOST = zyk)(PORT = 1521))

    ??? )

    )

    以上粗體部件為增加的內容,修改后重啟監聽服務后即可。

    posted @ 2007-09-29 02:57 jadmin 閱讀(112) | 評論 (0)編輯 收藏

    主要思路:

    對于任意2個日期比如:date_start=2006-10-1、date_end=2006-10-14 ,首先計算這連個日期之間的時間間隔(天數),然后分別對date_start 和date_end 取得它們下一個星期一的日期,這樣就可以得到一個新的可以整除7的完整日期間隔(這個新的日期間隔已經把星期幾的問題剔出掉了),換一種說法就是我們可以得到,這兩個新的日期之間的周數,拿這個周數乘以5就是工作日期了(tmpWorkingDays)。但是這個日期并不是我們所要的日期,接下來我們要做的就是計算date_start,date_end這兩個日期對于根據它們所產生的新的日期之間的時間偏移量,date_start的偏移量(date_start_change)是需要加的,而date_end的這個偏移量(date_end_change)是需要減去的。 最后我們只要用tmpWorkingDays+date_start_change-date_end_change就是我們所要求的實際工作日了。以下是所有實現代碼(兩個日期跨年也沒有問題)。

    希望我的方法能對大家有用,應為這個算法沒有考慮到節假日的問題,我以后會像辦法處理,呵呵,今天就到這里了。

    package com.date.utlit;

    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    /**
    * 計算任意2個日期內的工作日(沒有考慮到國定假日)
    * @author user
    *
    */
    public class DateCal {

    /**
    ??? * @param args
    ??? */
    public static void main(String[] args) {
    ??? try {

    ???? String strDateStart = "2006-10-1";
    ???? String strDateEnd = "2006-10-14";
    ???? SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    ???? Date date_start = sdf.parse(strDateStart);
    ???? Date date_end = sdf.parse(strDateEnd);
    ???? DateCal app = new DateCal();
    ???? Calendar cal_start = Calendar.getInstance();
    ???? Calendar cal_end = Calendar.getInstance();
    ???? cal_start.setTime(date_start);
    ???? cal_end.setTime(date_end);
    ???? System.out.println("星期-->" + app.getChineseWeek(cal_start)
    ?????? + " 日期-->" + cal_start.get(Calendar.YEAR) + "-"
    ?????? + (cal_start.get(Calendar.MONTH) + 1) + "-"
    ?????? + cal_start.get(Calendar.DAY_OF_MONTH));
    ???? System.out.println("星期-->" + app.getChineseWeek(cal_end) + " 日期-->"
    ?????? + cal_end.get(Calendar.YEAR) + "-"
    ?????? + (cal_end.get(Calendar.MONTH) + 1) + "-"
    ?????? + cal_end.get(Calendar.DAY_OF_MONTH));
    ???? System.out.println("工作日為-->"
    ?????? + app.getWorkingDay(cal_start, cal_end));
    ???? System.out.println("休息日-->"+app.getHolidays(cal_start, cal_end));
    ??? } catch (Exception e) {
    ???? // TODO: handle exception
    ??? }
    }

    public int getDaysBetween(java.util.Calendar d1, java.util.Calendar d2) {
    ??? if (d1.after(d2)) { // swap dates so that d1 is start and d2 is end
    ???? java.util.Calendar swap = d1;
    ???? d1 = d2;
    ???? d2 = swap;
    ??? }
    ??? int days = d2.get(java.util.Calendar.DAY_OF_YEAR)
    ????? - d1.get(java.util.Calendar.DAY_OF_YEAR);
    ??? int y2 = d2.get(java.util.Calendar.YEAR);
    ??? if (d1.get(java.util.Calendar.YEAR) != y2) {
    ???? d1 = (java.util.Calendar) d1.clone();
    ???? do {
    ????? days += d1.getActualMaximum(java.util.Calendar.DAY_OF_YEAR);
    ????? d1.add(java.util.Calendar.YEAR, 1);
    ???? } while (d1.get(java.util.Calendar.YEAR) != y2);
    ??? }
    ??? return days;
    }

    /**
    ??? * 計算2個日期之間的相隔天數
    ??? * @param d1
    ??? * @param d2
    ??? * @return
    ??? */
    public int getWorkingDay(java.util.Calendar d1, java.util.Calendar d2) {
    ??? int result = -1;
    ??? if (d1.after(d2)) { // swap dates so that d1 is start and d2 is end
    ???? java.util.Calendar swap = d1;
    ???? d1 = d2;
    ???? d2 = swap;
    ??? }

    ??? int betweendays = getDaysBetween(d1, d2);

    ??
    ??? int charge_date = 0;
    ??? int charge_start_date = 0;//開始日期的日期偏移量
    ??? int charge_end_date = 0;//結束日期的日期偏移量
    ???? // 日期不在同一個日期內
    ???? int stmp;
    ???? int etmp;
    ???? stmp = 7 - d1.get(Calendar.DAY_OF_WEEK);
    ???? etmp = 7 - d2.get(Calendar.DAY_OF_WEEK);
    ???? if (stmp != 0 && stmp != 6) {// 開始日期為星期六和星期日時偏移量為0
    ????? charge_start_date = stmp - 1;
    ???? }
    ???? if (etmp != 0 && etmp != 6) {// 結束日期為星期六和星期日時偏移量為0
    ????? charge_end_date = etmp - 1;
    ???? }
    //??? }
    ??? result = (getDaysBetween(this.getNextMonday(d1), this.getNextMonday(d2)) / 7)
    ????? * 5 + charge_start_date - charge_end_date;
    ??? //System.out.println("charge_start_date>" + charge_start_date);
    ??? //System.out.println("charge_end_date>" + charge_end_date);
    ??? //System.out.println("between day is-->" + betweendays);
    ??? return result;
    }

    public String getChineseWeek(Calendar date) {
    ??? final String dayNames[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五",
    ????? "星期六" };

    ??? int dayOfWeek = date.get(Calendar.DAY_OF_WEEK);

    ??? // System.out.println(dayNames[dayOfWeek - 1]);
    ??? return dayNames[dayOfWeek - 1];

    }

    /**
    ??? * 獲得日期的下一個星期一的日期
    ??? *
    ??? * @param date
    ??? * @return
    ??? */
    public Calendar getNextMonday(Calendar date) {
    ??? Calendar result = null;
    ??? result = date;
    ??? do {
    ???? result = (Calendar) result.clone();
    ???? result.add(Calendar.DATE, 1);
    ??? } while (result.get(Calendar.DAY_OF_WEEK) != 2);
    ??? return result;
    }

    /**
    ??? *
    ??? * @param d1
    ??? * @param d2
    ??? * @return
    ??? */
    public int getHolidays(Calendar d1,Calendar d2){
    ??? return this.getDaysBetween(d1, d2)-this.getWorkingDay(d1, d2);
    ??
    }

    }

    posted @ 2007-09-28 22:33 jadmin 閱讀(70) | 評論 (0)編輯 收藏
    數值函數:
    abs(m) m的絕對值
    mod(m,n) m被n除后的余數
    power(m,n) m的n次方
    round(m[,n]) m四舍五入至小數點后n位的值(n缺省為0)
    trunc(m[,n]) m截斷n位小數位的值(n缺省為0)
    --------------------------------------------------------------------------------

    字符函數:
    initcap(st) 返回st將每個單詞的首字母大寫,所有其他字母小寫
    lower(st) 返回st將每個單詞的字母全部小寫
    upper(st) 返回st將每個單詞的字母全部大寫
    concat(st1,st2) 返回st為st2接st1的末尾(可用操作符"||")
    lpad(st1,n[,st2]) 返回右對齊的st,st為在st1的左邊用st2填充直至長度為n,st2的缺省為空格
    rpad(st1,n[,st2]) 返回左對齊的st,st為在st1的右邊用st2填充直至長度為n,st2的缺省為空格
    ltrim(st[,set]) 返回st,st為從左邊刪除set中字符直到第一個不是set中的字符。缺省時,指的是空格
    rtrim(st[,set]) 返回st,st為從右邊刪除set中字符直到第一個不是set中的字符。缺省時,指的是空格
    replace(st,search_st[,replace_st]) 將每次在st中出現的search_st用replace_st替換,返回一個st。缺省時,刪除search_st substr(st,m[,n]) n=返回st串的子串,從m位置開始,取n個字符長。缺省時,一直返回到st末端
    length(st) 數值,返回st中的字符數
    instr(st1,st2[,m[,n]]) 數值,返回st1從第m字符開始,st2第n次出現的位置,m及n的缺省值為1 例:
    ???? 1. select initcap('THOMAS'),initcap('thomas') from test; initca initca ------ ------ Thomas Thomas
    ???? 2. select concat('abc','def') "first" from test; first ----- abcdef
    ???? 3. select 'abc'||' '||'def' "first" from test; first ----- abc def
    ???? 4. select lpad(name,10),rpad(name,5,'*') from test; lpad(name,10) rpad(name,5,'*') ------------ ---------------- mmx???? mmx** abcdef abcde
    ???? 5. 去掉地址字段末端的點及單詞st和rd select rtrim(address,'. st rd') from test
    ???? 6. select name,replace(name,'a','*') from test; name replace(name,'a','*') ---- --------------------- great gre*t
    ???? 7. select substr('archibald bearisol',6,9) a,substr('archibald bearisol',11) b from test; a b ------- ------- bald bear bearisol
    ???? 8. select name,instr(name,' ') a,instr(name,' ',1,2) b from test; name a b ------- -------- --------- li lei 3 0 l i l 2 4 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    轉換函數:
    nvl(m,n) 如果m值為null,返回n,否則返回m
    to_char(m[,fmt]) m從一個數值轉換為指定格式的字符串fmt缺省時,fmt值的寬度正好能容納所有的有效數字 to_number(st[,fmt]) st從字符型數據轉換成按指定格式的數值,缺省時數值格式串的大小正好為整個數附: to_char()函數的格式: --------------------------------- 符號 說明 --------------------------------- 9 每個9代表結果中的一位數字 0 代表要顯示的先導0 $ 美元符號打印在數的左邊 L 任意的當地貨幣符號 . 打印十進制的小數點 , 打印代表千分位的逗號 --------------------------------- 例:
    1. select to_number('123.45')+to_number('234.56') form test; to_number('123.45')+to_number('234.56') ---------------------------------------- 358.01 2. select to_char(987654321) from test; to_char(987654321) ------------------ 987654321 3. select to_char(123,'$9,999,999') a,to_char(54321,'$9,999,999') b,to_char(9874321,'$9,999,999') c from test; a b c ------- ---------- ----------- $123 $54,321 $9,874,321 4. select to_char(1234.1234,'999,999.999') a,to_char(0.4567,'999,999.999') b,to_char(1.1,'999,999.999') from test; a b c --------- ---------- ------------ 1,234.123 .457 1.100 --------------------------------------------------------------------------------

    分組函數:
    avg([distinct/all] n) 列n的平均值
    count([all] *) 返回查詢范圍內的行數包括重復值和空值
    count([distinct/all] n) 非空值的行數
    max([distinct/all] n) 該列或表達式的最大值
    min([distinct/all] n) 該列或表達式的最小值
    stdev([distinct/all] n) 該列或表達式的標準偏差,忽略空值
    sum([distinct/all] n) 該列或表達式的總和
    variance([distinct/all] n) 該列或表達式的方差,忽略空值 --------------------------------------------------------------------------------

    日期函數: >
    add_months(d,n) 日期d加n個月
    last_day(d) 包含d的月份的最后一天的日期
    month_between(d,e) 日期d與e之間的月份數,e先于d
    new_time(d,a,b) a時區的日期和時間d在b時區的日期和時間
    next_day(d,day) 比日期d晚,由day指定的周幾的日期
    sysdate 當前的系統日期和時間
    greatest(d1,d2,...dn) 給出的日期列表中最后的日期
    least(d1,k2,...dn) 給出的日期列表中最早的日期
    to_char(d [,fmt]) 日期d按fmt指定的格式轉變成字符串
    to_date(st [,fmt]) 字符串st按fmt指定的格式轉成日期值,若fmt忽略,st要用缺省格式
    round(d [,fmt]) 日期d按fmt指定格式舍入到最近的日期
    trunc(d [,fmt]) 日期d按fmt指定格式截斷到最近的日期附:
    日期格式:--------------------------------
    格式代碼 
    說明
    舉例或可取值的范圍--------------------------------
    DD 該月某一天 1-3 DY    
    三個大寫字母表示的周幾 SUN,...SAT DAY    完整的周幾,大寫英文 SUNDAY,...SATURDAY MM 月份 1-12 MON      三
    個大寫字母表示的月份 JAN,...DEC MONTH 完整 JANUARY,...DECEMBER RM 月份的羅馬數字 I,...XII YY或YYYY 兩位,四位數字年 HH:MI:SS   時:分:秒 HH12或HH24  以12小時或24小時顯示 MI      分 SS      秒 AM或PM    上下午指示符 SP      后綴SP要求拼寫出任何數值字段 TH      后綴TH表示添加的數字是序數 4th,1st FM 前綴對月或日或年值,禁止填充---------------------------------例:
    1. 下一個周五的日期 select next_day(sysdate,6) from test; 2. 兩個月前的今天的日期 select add_months(sysdate,-2) from test;
    posted @ 2007-09-28 18:00 jadmin 閱讀(70) | 評論 (0)編輯 收藏
    壹.呤紅篇(紅摟夢十二支曲)---一.呤<紅摟夢>"引子"

    1.開辟鴻蒙情種生,情濃風月奈何天.愚衷誰遣翻添劇,悼玉悲金塵世緣.

    2.身心物否奈何天,懺悔情場曲解言.勢潰利崩今世恨,四家結局盡哀憐.

    3.十二曲情絕可憐,紅摟夢引淚漣漣.悲哀寂寞憤愁極,誤盡韶華多少年.

    4.一部紅摟千古恨,支支曲調訴衷紜.人寰無極因何故,苦樂酸甜年復年.

    5.興盡悲來過后哀,人生結局使人駭.紅顏艷艷天嬌慧,誤入情場悔不該.

    壹.呤紅篇(紅摟夢十二支曲)---二.呤"終身誤"

    1.青根山峰頑石珍,靈河仙草絳珠身.相逢總是天真對,夢里難忘心里人.

    2.人說寶釵金玉緣,難忘竟是絳珠仙.陰差陽錯終生苦,換棟偷梁終恨天.

    3.正統規身愿勿違,背經叛道自成其.婚姻自主難能貴,封建其時誤盡余.

    4.移花接木王熙風,毀稿焚詩腸斷時.鼓里良緣原是夢,醒來慟哭吊靈悲.

    5.卿卿我我憶當時,淚落荷鋤花葬之.共讀西廂曾幾日,瑤琴不見實堪悲.

    壹.呤紅篇(紅摟夢十二支曲)---三.呤"枉凝眉"

    1.仙葩聞苑惜芳華,美玉無瑕證卞家.若說奇緣真不假,為何偏遇此奇葩.

    2.若說奇緣偏遇她,相逢心事話虛差.空勞牽掛空嗟訝,水里月光鏡里花.

    3.萬千心事從何訴,雁去燕來幾度春.正值飛紅花逝水,瓊樓幾度憶親人.

    4.凝眉卻是緣何事,屢屢詩成詠美人.一個空勞一個掛,天階徒自看星辰.

    5.凝眉柢事欠情虧,我亦癡情大覺非.試問眼中多少淚,春流到夏幾多回.

    6.凝眉深處憶非非,愁去愁來總自癡.叛逆道同同建愛,真心純潔自無虧.

    7.婚姻政治互相謀,家世相同門戶投.兒女同行難遂愿,終生悔恨感其由.

    8.王氏夫人熙風詭,大權操在伊心懷.愛情從此成悲劇,落入空門寶玉乖.

    9.絳珠仙草黃泉赴,頻吊靈魂淚不干.遺恨終生何所謂,鼓鐘經卷透心寒.

    10.枉自凝眉千百度,何心何意竟何之.何年何月花飛際,何地何天相去隨.

    壹.呤紅篇(紅摟夢十二支曲)---四.呤"恨無常"

    1.榮華正茂賦青春,燕舞鶯歌彩蝶頻.烈火烹油大有得,鮮花著錦德妃珍.

    2.珍珠寶玉嵌玲瓏,憂似黃鶯囚入籠.統治集團為己利,嬌身姿艷薦皇宮.

    3.賈府之門有靠山,仕途官場好售奸.回家之日榮華極,那個不惜天府攀.

    4.德才賢孝德賢妃,風藻尚書女史稀.榮府高堂貴顯極,大觀園耀樂何之.

    壹.呤紅篇(紅摟夢十二支曲)---五.呤"分骨肉"

    1.才自清明志自高,探春智慧勝諸曹.清風明月常相詠,調理家常總自豪.

    2.大廈將傾欲補天,祗緣塵世世情顛.身居瓊閣有鯤志,欲出人頭地涌先.

    3.封建末時萬事非,狂瀾欲挽費心機.閨中賢淑天真女,經世奇才才德施.

    4.一年容易又秋風,翠袖天寒易至冬.欲假他山誠不易,皆因自古有窮通.

    5.自古窮通何有定,悲歡離合豈無緣.命途多舛逢遭遇,天假前因作鏡懸.

    6.蟲魚門戶自良家,秋月春風度度華.遠適他方終是恨,東皇誤嫁悔何差.

    7.東風無力百花斜,蜂蝶有心逐麗華.雨雨風風誰作主,生非薄命不為花.

    8.各自紛飛奈若何,分奔離析感磋跎.心機費盡空撈月,潦倒乾坤我泣歌.

    9.一帆風順路三千,骨肉分離痛故國.但愿爺娘莫念女,平安各保莫牽連.

    10.山水遙迢奴去也,身神消損誤殘年.人生離合竟如此,目斷山高各一天.


    壹.呤紅篇(紅摟夢十二支曲)---六.呤"樂中悲"

    1.史氏湘云命苦殃,生來從小令雙亡.家雖富貴誰人養,史鼎叔家愛不香.

    2.春風秋月等閑度,兒女情懷未系將.月貌花顏姿夭夭,天真爛漫意情芳.

    3.花宮月貌意情芳,詠月呤詩桃李香.最是撩人心緒處,欄桿獨倚費思量.

    4.霽月風光照玉堂,性情豪爽度宏量.天真妖冶臨風際,花欲言兮玉欲香.

    5.天真窕窈自天香,如愿東床如意郎.你我卿卿天比翼,前程地久與天長.

    6.老天為啥太荒唐,如意郎君早夭亡.天不由人何慘酷,年年月月淚雙行.

    7.父母雙亡夫夭亡,飄零花落水隨將.賈家親戚雖名府,寄以斯身無別望.

    8.身世坎坷命自傷,途窮湘水固湘江.多磨好事終難得,浮落高唐散霧茫.

    9.磋跎身世感滄桑,變換無窮恨命殃.泡影浮云何足慮,地天日月自消長.

    10.天地無仁殘且酷,日無光彩月偏陰.鮮花雖美紛紛墜,滿地殘英任雨淋.


    壹.呤紅篇(紅摟夢十二支曲)---七.呤"世難容"

    1.窈窕身材如女仙,月宮有意任回旋.身居府院繁華處,大廈紅樓夢好天.

    2.仕宦之家身世賢,才華出眾賽神仙.天生孤僻人言鮮,氣質如蘭情意綿.

    3.質本為蘭氣潔馨,妙玉正是女嬌星.他生未卜今生愿,落人紅塵情惜惺.

    4.過分凈潔俗凡嫌,高尚情操人妒賢.世時茫茫紛亂仄,當歌當泣訴琴弦.

    5.紅塵總是老紅塵,辜負華年綽約身.世道斯時多混濁,仙妹轉眼變庸人.

    6.瞬息之間繁轉湮,當時社會太私夤.妙玉本是天真女,落入尼庵避世塵.

    7.青燈一盞誦經頻,人世無聞修后因.何必王孫公子嘆,再生夢里化真人.

    8.碌碌紅塵違爾愿,淖污畏陷早抽身.佛門靜地空空也,超脫凡塵凈度貧.

    9.無作無為度此身,天真紅粉變尼人.榮華富貴如塵土,喜怒樂哀無別論.

    10.仕宦之家小姐身,窮途潦倒有原因.逃禪雖屬歸真法,凈土難能凈潔氤.

    11.昔時之事莫今量,消極何言沒有方.如若爾身值此世,爾能展法度身芳.

    壹.呤紅篇(紅摟夢十二支曲)---八.呤"喜冤家"

    1. 何喜冤家冤恨長,中山狼本狠心狼.貪而無厭居心險,獸面蛇心黑肚腸.

    2.趨炎附勢惡如魔,殘暴荒淫罪孽多.可恨惡狼孫紹祖,天仙嬌女吞泥窩.

    3.繁華四族已傾禿,高筑債臺難活之.用迎春作抵押,鮮花墜入污泥溪.

    4.如花似玉天嬌女,落入獸巢命陷淪.薄命如斯終古恨,侯門艷質化灰塵.

    5.迎春命苦歸山狼,越想越思哭斷腸.麗質天生遭獸污,嗚呼一命付汪洋.

    6.法外逍遙孫紹祖,害人罪惡賈包之.驕奢淫佚尋常事,公輔千金作賤妓.

    7.負義忘恩孫紹祖,祖冤祖孽統乘之.尋歡作樂污多女,害命貪財勝虎豹.

    8.芳魂艷魄劇悠悠,害人黃泉恨不休.昔日恩由全不問,恩人當作是冤仇.

    9.迎春誤入冤家孽,不了深仇眾恨之.天否無睛人不管,冤冤怨怨報何為.

    10.人世偏多此惡官,胡為亂作喜歡歡.皇朝大廈將傾倒,罪孽深深后人寒.

    posted @ 2007-09-28 16:45 jadmin 閱讀(192) | 評論 (0)編輯 收藏
    Struts2 發布已經有一段時間了。
    (http://struts.apache.org/downloads.html)
    最近正在做的項目已經到了尾聲,利用這段空閑的時間,我試用了一下Struts2。
    跟Struts1 相比,Struts2 做了不少改變,例如:Struts2提供一個ActionSupport基類去實現常用的接口。Action接口不是必須的,任何有execute標識的POJO對象都可以用作Struts2的Action對象,具體可以參考apache官方網站。
    http://struts.apache.org/2.0.6/index.html
    我的感覺是Struts2變的更加靈活了。
    好,既然是學習,Hello World 程序是必不可少的。
    第一步,先看看系統要求:
    Platform Requirements
    Struts 2 requires
    Servlet API 2.4
    JSP API 2.0
    Java 5
    更具體系統要求可以在文檔說明中找到。
    第二步,了解如何部署Struts2程序。
    我手上沒有支持Struts2的IDE所以只有自己多花點力氣了。
    在以下鏈接中可以找到部署Struts2程序的三種方法:
    http://struts.apache.org/2.0.6/docs/ready-set-go.html
    1. Use the blank template (在struts-2.0.6-all.zip)
    2. run the Maven archetype
    3. just setup a web infrastructure from scratch
    我用了第三種方法。
    http://struts.apache.org/2.0.6/docs/simple-setup.html 這個鏈接上面說的很明白。主意需要庫,多了或者少了都會出問題。
    我就試過把struts-2.0.6-all.zip包里邊的lib全部拷貝過去,結果在tomcat啟動的過程中出現一下錯誤:
    嚴重: Error filterStart
    查看tomcat日志,消耗了不少時間終于排除了問題。
    可能是里邊的一些plugin包引起的,以后在慢慢研究怎么回事。
    好了,按照simple-setup.html中的說明把程序部署好。部署好之后的目錄結構如下:
    struts2
    ├─META-INF
    │?????? MANIFEST.MF

    ├─WEB-INF
    │?? │?? web.xml
    │?? │
    │?? ├─classes
    │?? │?? │?? struts.xml
    │?? │?? │
    │?? │?? └─org
    │?? │?????? └─sen
    │?? │?????????? └─hello
    │?? │?????????????????? HelloWorld.class
    │?? │
    │?? └─lib
    │?????????? antlr-2.7.2.jar
    │?????????? commons-beanutils-1.6.jar
    │?????????? commons-chain-1.1.jar
    │?????????? commons-logging-1.0.4.jar
    │?????????? commons-validator-1.3.0.jar
    │?????????? freemarker-2.3.8.jar
    │?????????? ognl-2.6.11.jar
    │?????????? oro-2.0.8.jar
    │?????????? struts2-core-2.0.6.jar
    │?????????? xwork-2.0.1.jar

    └─hello
    ???????? HelloWorld.jsp
    【注】我這個程序跟http://struts.apache.org/2.0.6/docs/hello-world.html上面的Hello world 是一樣的,只是改了包名。
    啟動tomcat,成功了^_^。
    因為我用的開發工具試myEclipse 于是,我便試著把這個項目遷移到eclipse中去
    在eclipse 中新建項目Struts2 然后把所有的文件復制過去。最后目錄結構為:
    struts2
    │?? .project
    │?? .mymetadata
    │?? .classpath

    ├─src
    │?? │?? struts.xml
    │?? │
    │?? └─org
    │?????? └─sen
    │?????????? └─hello
    │?????????????????? HelloWorld.java

    ├─WebRoot
    │?? ├─WEB-INF
    │?? │?? │?? web.xml
    │?? │?? │
    │?? │?? ├─lib
    │?? │?? │?????? struts2-core-2.0.6.jar
    │?? │?? │?????? ...
    │?? │?? └─classes
    │?? │?????? │?? struts.xml
    │?? │?????? │
    │?? │?????? └─org
    │?? │?????????? └─sen
    │?? │?????????????? └─hello
    │?? │?????????????????????? HelloWorld.class
    │?? │
    │?? ├─META-INF
    │?? │?????? MANIFEST.MF
    │?? │
    │?? └─hello
    │?????????? HelloWorld.jsp

    ├─.myeclipse
    └─.settings
    ???????? ...
    myEclipse 可以正確發布,但是啟動的時候出現問題。
    java.lang.UnsupportedClassVersionError: org/apache/struts2/dispatcher/FilterDispatcher (Unsupported major.minor version 49.0)
    經過檢查發現原因所在:我elipse的編譯器雖然設成了jdk1.5,但是eclipse啟動tomcat的時候還是用之前設的jdk1.4。把啟動在myeclipse的application server下面找到tomcat并且把jdk設為jdk1.5便ok了。
    上面是我在試用struts2的時候遇到的一點波折。
    環境搭好了,剩下的就是抓時間應該深入學習一下。
    posted @ 2007-09-27 21:32 jadmin 閱讀(86) | 評論 (0)編輯 收藏

      在這篇文章中,將為大家介紹一種基于JSP且靈活有趣的技術,那就是JSTL.JSTL全稱為Java Server Pages Standard Tag Library.雖然JSP已經變的非常流行,但JSTL在基于SQL數據庫的簡單、快速的前后臺開發中還是沒有被廣泛的應用。一旦你了解了JSTL,你就會了解到它的優點,并發現在你作為程序員的日常工作中,它已經被應用到了很多方面。我這里假設你已經熟悉HTML,能理解基本的SQL語句,和Jsp的基礎知識。因為下面的內容要涉及到這些知識。
      JSTL是一個已經被標準化的標記庫集合,她支持迭代、條件、XML文檔的解析,國際化,和利用SQL與數據庫交互的功能。起初,JSTL規范一直由JCP(Java Community process program)組織下的JSR #52 發展完善,"JCP肩負著Java 技術發展的重任"--官方網站這樣評價。JCP作為一個開放性的組織,他同時吸收正式的會員和非正式會員.JCP對于Java技術規范的形成與發展發揮了重要的主導作用。JSTL主要包括四個基本部分的標記庫:Core,XML,國際化,和對SQL的支持。由于這篇文章的主要是以其中的SQL部分的應用來快速了解JSTL,所以我們這篇文章只介紹了 Core和SQl標簽庫的一些基本功能。

      這項技術簡單而且功能強大,足以和PHP、ColdFusion一較高下.他在拓展Java的應用領域方面有足夠的能力,這些領域不只包括大型的可再升級的Web應用程序,對于僅擁有簡單主頁的Web程序一樣沒問題。這允許你在建立站點的時候可以避免那些經常考慮的XML的集成和與數據庫的連接。正如我剛才提到的一樣,JSTL的關鍵點就是簡單易用。還有,那就是JSTL是基于JSP構建的, 他允許我們使用所有的Java技術,這一點我們有必要記住。

      開始之前,我們需要弄清楚怎樣才能運行JSTL.由于是基于JSP技術的,所以我們運行它就需要一個能夠編譯JSP的容器,這里我們使用免費的JSP容器:TOMCAT(http://jakarta.apache.org/tomcat/index.html).至于如何安裝這個產品已經超出了本文所講述的范圍。毫無疑問,這個軟件產品現在已經很普及了,而且關于如何安裝的文檔資料也是很多。這里假設您已經安裝并成功配置了這個容器,你只需再安裝JSTL運行所需文件即可,它可以從這里下載http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html你不需要真正的安裝它,只需要將其中的.JAR文件包含到你的應用程序的WEB-INF/lib目錄下即可,稍后我會具體說到該怎么做.

      因為我們要在一個支持標準SQL的數據庫上運行程序,你需要在你的電腦上安裝有一個數據庫。數據庫的類型有許多種,這里我選擇了MySql。我之所以選擇他的原因在于首先,我們需要展示JSTL對于構造簡單快速的應用程序領域所起的作用,同時能和一直在這個領域處于主導地位的PHP+MySql有所比較;第二點那就是MySql是可以免費下載并包含有一個針對JAVA的JDBC驅動.總之,為了使用下面的例子,你需要下載一個MYSQL服務器(http://www.mysql.com/products/mysql/index.html; MySql Connector/J JDBC驅動程序http://www.mysql.com/products/connector-j/index.html;還有就是MySql control center http://www.mysql.com/products/connector-j/index.html),這個產品可以讓你非常容易的操作管理Mysql數據庫文件。全部下載完成后,你需要安裝mysql和mysql Control Center。另外還有就是mysql的JDBC驅動需要放到你的web應用程序中的/Web-INF/lib目錄中。
      在創建程序代碼之前,你需要創建并填寫數據庫表。關于這方面的主題文章也相當廣泛,具體如何操作超出了本文的范圍。這里我推薦給你我們上面提及的一個可視化的管理工具 MySQL Control Center.你可以用他來創建一個用來運行程序的測試用戶,數據庫以及創建一個測試表,并填寫若干記錄。關于登陸名及密碼 數據庫名稱這些配置環境參數,你應該記住他們,稍后需要應用到我們的代碼中。
      現在,你就可以準備創建自己的第一個JSTL應用程序了它需要我們做下面一些事情:
      整個實例程序代碼包括兩個文件Hello.jsp和 Continue.jsp
      Hello.jsp文件允許你輸入數據庫名稱、登陸名稱、登陸密碼、數據庫表名。Continue.jsp:接受Hello.jsp中的數據信息并且連接數據庫,并對數據庫中的表執行一個Select請求.
      下面是這個系統所有的代碼文件,我將逐一進行解釋。這些代碼相當簡單,對于代碼的結構,我相信你即使沒有我的解釋你也能理解的.
    1: <!-- Hello.jsp -->
    2: <html>
    3: <head>
    4: <title>Hello</title>
    5: </head>
    6: <body bgcolor="#ffffff">
    7: <h1>Please, enter all necessary information and click OK.</h1>
    8: <form method="post" action="Continue.jsp">
    9: <br>Your login to database:
    <input type="text" name="login" size="15">
    10: <br>Your password to database:
    <input type="password" name="password" size="15">
    11: <br>Your database name:
    <input type="text" name="database" size="15">
    12: <br>Your database table:
    <input type="text" name="table" size="15">
    13: <br><br><input type="submit" name="submit" value=" OK ">
    14: </form>
    15: </body>
    16: </html>??
      (請注意文本左側的數字只是為你提供一些標記信息,你不需要將他們輸入到你的代碼文件中。)
      上面就是所有Hello.jsp的源代碼,很驚奇吧,他僅僅是純粹的HTML代碼,就這么簡單,我想應該沒有注釋的必要了.我之所以將這些代碼片段包含進文章中就是為了展示一下JSTL集成到那些需要快速擴充額外功能的HTML站點中是多么的簡單.讓我再為你展示一下Continue.jsp的全部代碼,看過之后,你就會對 JSTL有些了解了。
    1: <!-- Continue.jsp -->
    2: <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    3: <@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
    4: <c:set var="h" value="localhost"/>
    5: <c:set var="l" value="${param.login}"/>
    6: <c:set var="p" value="${param.password}"/>
    7: <c:set var="d" value="${param.database}"/>
    8: <c:set var="t" value="${param.table}"/>
    9: <html>
    10: <head>
    11: <title>Continue</title>
    12: </head>
    13: <body bgcolor="#ffffff">
    14: <sql:setDataSource driver="com.mysql.jdbc.Driver"
    url="jdbc:mysql://${l}/$2u46wuu?user=${u}&password=${p}"/>
    15: <sql:query var="result">
    16: SELECT * FROM <c:out value="${t}"/>
    17: </sql:query>
    18: <c:forEach var="row" items="${result.rowsByIndex}">
    19: <c:out value="${row[0]}"/> <br>
    20: </c:forEach>
    21: </body>
    22: </html>??
    (請注意文本左側的數字只是為你提供一些標記信息,你不需要將他們輸入到你的代碼文件中。)

    posted @ 2007-09-27 21:31 jadmin 閱讀(50) | 評論 (0)編輯 收藏
      這是很頭痛的問題,一直都是在困擾著我們。我有一個不算簡單也不算難的方法,這是我一直在用的方式。

    1、建立一個類,包括一個格式將中文轉換為ISO8859-1編碼的方法:
    publicclass Format2Chinese {
    public Format2Chinese() {
    }
    public String format2IS08859(String str) {
    try {
    if (str == null || str.trim().equals(""))
    str = "";
    else
    str = new String(str.getBytes("ISO8859-1"));

    } catch (Exception e) {
    e.printStackTrace();
    }
    return str;
    }
    }
    2、你的bean里面這時就要加一些東西了,如下面這個簡單的bean:
    publicclass Leavemsg
    {
    public Leavemsg() {
    }
    //這個要加的,因為寫入的時候我們不格式,寫出的時候格式化
    public Leavemsg(boolean format) {
    this.format = format;
    }
    private String msg;
    booleanformat = false; //用于確定是否將字符格式轉換
    Format2Chinese function = new Format2Chinese();

    publicvoid setMsg(String msg) {
    if (format) {
    this.msg = function.format2IS08859(msg);
    } else
    this.msg = msg;
    }
    public String getMsg() {
    return msg;
    }
    }

    3、在用bean裝數據的時候,這樣聲明:

    Leavemsg msg=new Leavemsg(true); 然后其它的操作都是一樣的,就OK了。
    這時頁面顯示中文的時候就不會出問題了,在JSP頁面里這可以這樣,用該類做包裝得到的內容。
    posted @ 2007-09-27 20:27 jadmin 閱讀(65) | 評論 (0)編輯 收藏
    以下假設jad.exe在c:\java目錄下
    一、基本用法
    Usage:???? jad [option(s)] <filename(s)>
    直接輸入類文件名,且支持通配符,如下所示。
    c:\java\>jad example1.class
    c:\java\>jad *.class
    結果是將example1.class反編譯為example1.jad。將example1.jad改為example1.java即得源文件。

    posted @ 2007-09-27 12:28 jadmin 閱讀(67) | 評論 (0)編輯 收藏
    del/q/s?? work\*.*
    posted @ 2007-09-27 10:48 jadmin 閱讀(134) | 評論 (0)編輯 收藏
    僅列出標題
    共50頁: First 上一頁 23 24 25 26 27 28 29 30 31 下一頁 Last 
    主站蜘蛛池模板: 成全视频在线观看免费高清动漫视频下载 | 免费看www视频| 亚洲精品国产电影午夜| 日本一道在线日本一道高清不卡免费 | 久久精品无码免费不卡| 免费一级成人毛片| 粉色视频在线观看www免费| 四虎影视永久免费观看网址| 国产精品亚洲专区一区| 亚洲av手机在线观看| 国产精品美女免费视频观看| h片在线免费观看| 亚洲无码在线播放| 亚洲自偷自偷在线成人网站传媒| 我的小后妈韩剧在线看免费高清版| 亚洲精品第一国产综合野| 四虎成人免费观看在线网址| 激情吃奶吻胸免费视频xxxx| 亚洲线精品一区二区三区| 一级毛片免费观看不卡的| 亚洲人成综合网站7777香蕉| 日韩一级免费视频| 国产A∨免费精品视频| 久久久久亚洲AV无码永不| 国产免费久久久久久无码| 国产精品亚洲片在线| 四虎成人精品国产永久免费无码| 亚洲国产成人精品91久久久| a级毛片免费全部播放无码| 亚洲精品视频在线免费| 精品免费国产一区二区| a级毛片免费观看在线| 久久亚洲精品无码AV红樱桃| 色www永久免费视频| 99久久国产精品免费一区二区| 亚洲国产成a人v在线| 免费AA片少妇人AA片直播| 香蕉视频免费在线播放| 亚洲好看的理论片电影| 日韩精品内射视频免费观看 | 亚洲高清在线mv|