亚洲性无码av在线,亚洲欧洲精品成人久久曰影片,亚洲一级毛片中文字幕http://www.tkk7.com/coderdream/category/22884.html軟件工程師成長之路zh-cnThu, 26 Aug 2010 17:29:32 GMTThu, 26 Aug 2010 17:29:32 GMT60免安裝Oracle客戶端使用PL/SQL連接Oraclehttp://www.tkk7.com/coderdream/archive/2010/08/26/329990.htmlCoderDreamCoderDreamThu, 26 Aug 2010 09:01:00 GMThttp://www.tkk7.com/coderdream/archive/2010/08/26/329990.htmlhttp://www.tkk7.com/coderdream/comments/329990.htmlhttp://www.tkk7.com/coderdream/archive/2010/08/26/329990.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/329990.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/329990.html
  • 先下載適合自己系統的即時客戶端,可通過下面的地址下載。
    http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
  • 直接解壓到你想要存放的目錄中,如:D:\Java\instantclient_10_2
  • 編輯環境變量:
    TNS_ADMIN 設置為 D:\Java\instantclient_10_2
    ORACLE_HOME 設置為 D:\Java\instantclient_10_2
  • 編輯連接配置文件 tnsnames.ora,該文件需要自行在即時客戶端目錄(C:\instantclient_11_2)中創建。在該文件內輸入如下內容:
    MYDB =
      (DESCRIPTION 
    =
        (ADDRESS_LIST 
    =
          (ADDRESS 
    = (PROTOCOL = TCP)(HOST = 192.168.3.250)(PORT = 1521))
        )
        (CONNECT_DATA 
    =
          (SERVER 
    = DEDICATED)
          (SERVICE_NAME 
    = MYDB)
        )
      )
    MYDB:是數據庫實例名
    192.168.3.259:是數據庫的 IP 地址
    1521:是數據庫的端口
  • 然后你就可以使用 PLSQL Developer 和 TOAD 這類軟件來管理 Oracle 數據庫了。
    下面根據自己的實際情況配置PL/SQL:在首選項(perference)里面設置Oracle主目錄名(Oracle_home)和OIC庫(OCI Library),我的設置是Oracle_home=D:\Java\instantclient_10_2,OCI Library=D:\Java\instantclient_10_2\oci.dll。 


  •  



    CoderDream 2010-08-26 17:01 發表評論
    ]]>
    在Eclipse/MyEclipse中通過代理使用SVNhttp://www.tkk7.com/coderdream/archive/2010/03/05/314616.htmlCoderDreamCoderDreamFri, 05 Mar 2010 07:29:00 GMThttp://www.tkk7.com/coderdream/archive/2010/03/05/314616.htmlhttp://www.tkk7.com/coderdream/comments/314616.htmlhttp://www.tkk7.com/coderdream/archive/2010/03/05/314616.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/314616.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/314616.html有時候我們會碰到需要設置代理,然后通過svn獲取源代碼,下面我們來看一下如何設置;

    1、找到 C:\Documents and Settings\your userName\Application Data\Subversion 這個目錄下的servers文件,用任意一個文本編輯器打開,找到類似于如下的文字:

    [global]
    # http-proxy-exceptions 
    = *.exception.com, www.internal-site.org
    #http-proxy-host 
    = proxy2.some-domain-name.com
    #http-proxy-port 
    = 9000
    # http-proxy-username 
    = defaultusername


    #http-proxy-host
    #http-proxy-port
    這兩行前面的#號去掉,并將=號右邊的值分別改為你的代理服務器地址和端口號即可。

    2、設置Eclipse/MyEclipse,確認SVN的客戶端是SVNKit:


    這樣,就可以在Eclipse/MyEclipse中通過代理使用SVN了。




    CoderDream 2010-03-05 15:29 發表評論
    ]]>
    WebLogic經驗:session鎖定錯誤解決http://www.tkk7.com/coderdream/archive/2009/03/10/258800.htmlCoderDreamCoderDreamTue, 10 Mar 2009 06:58:00 GMThttp://www.tkk7.com/coderdream/archive/2009/03/10/258800.htmlhttp://www.tkk7.com/coderdream/comments/258800.htmlhttp://www.tkk7.com/coderdream/archive/2009/03/10/258800.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/258800.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/258800.html啟動服務:

    1、首先建立一個新的“服務器”

    在“Servers”面板空白處點擊右鍵,依次選擇【New】-》【Server】:


    2、選擇新服務器的類型

    服務器主機名默認為:localhost,類型為:Oracle WebLogic Server v10.3:


    3、選擇域的文件路徑:

    這里選擇WebLogic安裝路徑下的base_domain

    注:我們安裝WebLogic后有兩個domain,分別為:base_domain和test_domain,其實還可以自己創建自定義的domain,點擊面板中鏈接進入新建向導。



    4、啟動服務器

    選擇新建的服務器,點擊右鍵,選中【Start】即可,通過控制臺(Console)面板即可看到啟動信息:


    5、出現錯誤警告

    提示:

    The domain edit lock is owned by another session - this deployment operation requires exclusive access to the edit lock and hence cannot proceed.
    You can release the lock in Administration Console by first disabling "Automatically Acquire Lock and Activate Changes" in Preference,
    then clicking the Release Configuration button.



    解決方法:

    1、進入WebLogic控制臺:

    鏈接:http://localhost:7001/console/


     

    2、進入參數(Preferences)面板:

    3、將自動鎖定和激活勾選去掉:


    4、點擊頁面左上角的【Release Configuration】,使剛才的設置生效:




    CoderDream 2009-03-10 14:58 發表評論
    ]]>
    模態窗口的緩存問題http://www.tkk7.com/coderdream/archive/2008/09/09/228005.htmlCoderDreamCoderDreamTue, 09 Sep 2008 09:55:00 GMThttp://www.tkk7.com/coderdream/archive/2008/09/09/228005.htmlhttp://www.tkk7.com/coderdream/comments/228005.htmlhttp://www.tkk7.com/coderdream/archive/2008/09/09/228005.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/228005.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/228005.html在開發過程中使用模態窗口(window.showModelessDialog())時,由于模態窗口默認方式是有頁面緩存的,也就是說如果你改變了模態窗口的內容,但是窗口內的內容不會更新,其實只要在<head>標簽中加入下面三行代碼禁用頁面緩存即可:
    <META HTTP-EQUIV='pragma' CONTENT='no-cache'> 
    <META HTTP-EQUIV='Cache-Control' CONTENT='no-cache, must-revalidate'>
    <META HTTP-EQUIV='expires' CONTENT='0'>


    CoderDream 2008-09-09 17:55 發表評論
    ]]>
    正則表達式使用一例http://www.tkk7.com/coderdream/archive/2008/06/18/208882.htmlCoderDreamCoderDreamWed, 18 Jun 2008 07:08:00 GMThttp://www.tkk7.com/coderdream/archive/2008/06/18/208882.htmlhttp://www.tkk7.com/coderdream/comments/208882.htmlhttp://www.tkk7.com/coderdream/archive/2008/06/18/208882.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/208882.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/208882.html 規則:以(tppabs=")開頭,(")結尾,中間有任意個字符
    Java:^tppabs=".*"$
    EditPlus(替換時注意選擇"正則表達式"):^tppabs=".*"   如果末尾加美元符號($),則不行!

     

    Eclipse的正則表達式插件:Regular Expression Tester

    Eclipse Regular Expression Tester


    Features

    • Test and search for regular expression
    • Matches are colorized, for an easy visual clue
    • Support for pattern flags (e.g. Pattern.DOTALL)
    • LiveEval evaluates your regular expression while you are typing it, gives feedback on possible errors and shows any matches automatically
    • LiveEval is supported for changes of the regular expression, the search text and the pattern flags
    • 4 distinct match modes:
      • Find a sequence of characters
      • Match a complete text
      • Split text
      • Replace every occurence of the regex with a different string
        Replacing supports back references ($1,$2,...)
    • LiveEval for match mode changes
    • Context sensitive "Regular Expression Assist"
    • Selective evaluation of expressions
    • Bracket Matching
    • Generation of string literals based on the regexp, e.g. "\(x\)" becomes "\\(x\\)"
    • De-escape patterns in your code, e.g. \\(x\\) becomes \(x\)
    • Improved "Clear Menu", choose which parts of the view you would like to get cleared every time you press the clear button
    • Easy movement through matches: Choose "Previous Match" or "Next Match" and cycle through all matches found.
    • Polished and accessible user interface, everything is reachable via keyboard

    Download the plugin

    Download the most recent version as a zip file
    update site: http://brosinski.com/regex/update

    • Unzip it to ECLIPSE_HOME
    • Restart Eclipse
    • In Eclipse, choose Window > Show View > Other > RegEx Tester
    • Configure it in Window > Preferences > RegEx Tester

    If you like RegEx Tester, please rate it at eclipse-plugins.info.

    The plugin requires a 1.4 JRE/JDK and Eclipse 3.0 or later.

    There is an old (sorry) user guide which can also be found here.


    CoderDream 2008-06-18 15:08 發表評論
    ]]>
    在Eclipse中設置Jar文件與SourceCode的關聯http://www.tkk7.com/coderdream/archive/2008/05/29/203839.htmlCoderDreamCoderDreamThu, 29 May 2008 06:57:00 GMThttp://www.tkk7.com/coderdream/archive/2008/05/29/203839.htmlhttp://www.tkk7.com/coderdream/comments/203839.htmlhttp://www.tkk7.com/coderdream/archive/2008/05/29/203839.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/203839.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/203839.html
    這是javaee.jar的設置畫面,其他Struts等等設置類似。


    CoderDream 2008-05-29 14:57 發表評論
    ]]>
    SVN錯誤:Attempted to lock an already-locked dirhttp://www.tkk7.com/coderdream/archive/2008/05/27/203115.htmlCoderDreamCoderDreamTue, 27 May 2008 01:51:00 GMThttp://www.tkk7.com/coderdream/archive/2008/05/27/203115.htmlhttp://www.tkk7.com/coderdream/comments/203115.htmlhttp://www.tkk7.com/coderdream/archive/2008/05/27/203115.html#Feedback2http://www.tkk7.com/coderdream/comments/commentRss/203115.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/203115.html出現這個問題后使用“清理”功能,如果還不行,就直接到上一級目錄,再執行“清理”,然后再“更新”。

    有時候如果看到某個包里面的文件夾沒有SVN的標志,直接用“Ctrl+Delete”手工刪除,然后“清理”,最后“更新”或“提交”。


    網絡摘抄1:
    錯誤信息
    Malformed file   
    svn: E:\svn\repository\conf\svnserve.conf:12: Option expected   
    原因:

    配置文件12行開頭有空格

       

    錯誤信息
    Attempted to lock an already-locked dir   
    svn: Working copy 'E:\integration\com.svn.practise' locked  

    原因:

    需要用svn cleanup上次關閉時的鎖定


    網絡摘抄2:
    在eclipse里提交和更新文件是抱錯。

    Attempted to lock an already-locked dir
    svn: Working copy 'F:\workspace\WebFrame\WebRoot\attach\prodrelation' locked

    執行“清除”操作后,問題解決了。

    很多操作,例如中斷提交,都會進入這種工作拷貝的鎖定狀態。

    網絡摘抄3:
    因為這兩天頻出這個現象,現在基本不怕這個問題了
    我是這樣解決的:
    1 三令五申項目的組員必須先同步,合并,再提交
    2 操作后經常地在父目錄使用clean up命令
    3 解決了locked問題后,還出現不能更新的現象時,就刪除目錄下的所有文件,包括.svn,再重新check out服務器同目錄一次
    4 總之,操作要規范,要強調組員每天開工時,先在ECLIPSE里同步,下班時,要提交(提交前,先在文件夾的右菜單中,選擇小組>清除),保證每個人的機子里在開工前都是最新版本

    老實講,因為版本沖突,提交沖突,更新失敗等等問題,耽誤了好些時間,但我知道主要還是自身操作不熟練不規范的問題。我相信,只要堅持,大家包括我的組員一定都會喜歡上這個小海龜的  


     



    CoderDream 2008-05-27 09:51 發表評論
    ]]>
    Struts中的多語言實現http://www.tkk7.com/coderdream/archive/2008/05/14/200444.htmlCoderDreamCoderDreamWed, 14 May 2008 10:20:00 GMThttp://www.tkk7.com/coderdream/archive/2008/05/14/200444.htmlhttp://www.tkk7.com/coderdream/comments/200444.htmlhttp://www.tkk7.com/coderdream/archive/2008/05/14/200444.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/200444.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/200444.html

    文件清單:
    序號 文件名
    1 ChangeLocaleAction.java
    2 ChangeLocaleForm.java
    3 struts-config.xml
    4 index.jsp
    5 application_en_US.properties
    6 application_zh_CN.properties
    7 application_zh_TW.properties

    清單1:
    package com.coderdream.struts.action;

    import java.util.Locale;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.struts.Globals;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;

    import com.coderdream.struts.form.ChangeLocaleForm;

    public class ChangeLocaleAction extends Action {

        
    public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response) {
            ChangeLocaleForm clForm 
    = (ChangeLocaleForm)form;
            String language 
    = clForm.getLanguage();
            
    if (language != null) {
                Locale locale;
                
    if (language.equalsIgnoreCase("en")) {
                    locale 
    = Locale.US;
                    request.getSession().setAttribute(
                            Globals.LOCALE_KEY, locale);
                } 
    else if (language.equalsIgnoreCase("tw")) {
                    locale 
    = Locale.TAIWAN;
                    request.getSession().setAttribute(
                            Globals.LOCALE_KEY, locale);
                } 
    else {
                    locale 
    = Locale.CHINA;
                    request.getSession().setAttribute(
                            Globals.LOCALE_KEY, locale);
                }
            }
            
            
    return mapping.findForward("success");
        }
             
    }

    清單2:
    package com.coderdream.struts.form;

    import org.apache.struts.action.ActionForm;


    /**
     * 
     * description:
     * 
     * 
    @author 
     *
     
    */
    public class ChangeLocaleForm extends ActionForm{
        
        
    public ChangeLocaleForm() {
            
    super();
        }

        
    private String language;

        
    public String getLanguage() {
            
    return language;
        }

        
    public void setLanguage(String language) {
            
    this.language = language;
        }
    }

    清單3:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

    <struts-config>
        
    <data-sources />
        
    <form-beans>
            
    <form-bean name="ChangeLocaleForm"
                type
    ="com.coderdream.struts.form.ChangeLocaleForm" />
        
    </form-beans>

        
    <action-mappings>

            
    <action name="ChangeLocaleForm" path="/ChangeLocale"
                scope
    ="request"
                type
    ="com.coderdream.struts.action.ChangeLocaleAction"
                validate
    ="false">
                
    <forward name="success" path="/index.jsp" />
            
    </action>
        
    </action-mappings>

        
    <message-resources key="application"
            parameter
    ="com.coderdream.struts.resources.application" />
    </struts-config>

    清單4:
    <%@ page contentType="text/html; charset=UTF-8"%>
    <%@page import="org.apache.struts.Globals"%>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

    <html:html>
    <head>
        
    <title>多語言測試</title>
        
    <meta http-equiv="pragma" content="no-cache">
        
    <meta http-equiv="cache-control" content="no-cache">
        
    <meta http-equiv="expires" content="0">
        
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        
    <meta http-equiv="description" content="This is my page">
    </head>
    <script language="javascript"> 
        function onLanguage(){
            var language 
    = document.getElementsByName("language")[0].value;
            
    if(language!=null&&language!=""){         
              document.forms[
    0].submit();
                }
              }   
        
    </script>

    <body>
        
    <html:form action="ChangeLocale.do">
            
    <html:select property="language" styleId="height:18"
                onchange
    ="onLanguage();">
                
    <option value="" title="">
                    
    --
                    
    <bean:message bundle="application" key="global.select.language" />
                    
    --
                
    </option>
                
    <option value="en" title="English">
                    English
                
    </option>
                
    <option value="cn" title="簡體中文">
                    簡體中文
                
    </option>
                
    <option value="tw" title="繁體中文">
                    繁體中文
                
    </option>
            
    </html:select>
        
    </html:form>
        
    <br>
        
    <br>
        
    <br>
        
    <bean:message bundle="application" key="global.select.test" />
        
    <%=request.getSession().getAttribute(Globals.LOCALE_KEY)%>

    </body>
    </html:html>

    清單5:
    #Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)

    global.select.language 
    = Language
    global.select.test     
    = Test

    清單6:
    #Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
    #BizException

    global.select.language = \u8BED\u8A00
    global.select.test     = \u6D4B\u8BD5

    清單7:
    #Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)

    global.select.language = \u8A9E\u8A00
    global.select.test     = \u6E2C\u8A66

    此功能的關鍵是在Action里面將頁面傳過來的language信息得到,然后根據信息設置Locale,然后將新的Locale放到Session中。

    源代碼:點擊下載


    CoderDream 2008-05-14 18:20 發表評論
    ]]>
    Java中為面板(JPanel)添加標題http://www.tkk7.com/coderdream/archive/2008/04/29/197296.htmlCoderDreamCoderDreamTue, 29 Apr 2008 08:16:00 GMThttp://www.tkk7.com/coderdream/archive/2008/04/29/197296.htmlhttp://www.tkk7.com/coderdream/comments/197296.htmlhttp://www.tkk7.com/coderdream/archive/2008/04/29/197296.html#Feedback1http://www.tkk7.com/coderdream/comments/commentRss/197296.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/197296.html需求:用實線把各個面板圈起來,然后把面板的名字寫在圈圈的左上角。

    原始畫面:


    由于原來的程序使用的是AWT中的Panel,而這個控件我們沒有設置titleBorder的方法。
    現在將更新為Swing中的JPanel面板,代碼分別為:
    舊代碼:
        Panel pRoboCtrl=new Panel();
        pRoboCtrl.setLayout(
    new GridLayout(5125));
        
        
    // Robot控制面板的第一排,面板的標題
            Panel pR1=new Panel(); 
            pR1.setLayout(
    new GridLayout(1123));
         
            
    //Row One
        pR1.add(new Label("Robot Control",Label.CENTER));
    新代碼:
        JPanel pRoboCtrl=new JPanel();
        pRoboCtrl.setLayout(
    new GridLayout(4125));
        Border titleBorder1
    =BorderFactory.createTitledBorder("Robot Control");            
        pRoboCtrl.setBorder(titleBorder1);   
    原來的處理方式是將一個Label放到Panel中,然后將這個Panel放到外層的Panel中,新方式是將外層Panel定義成JPanel,然后設置Border的值為BorderFactory產生的一個實例。



    解決這個問題后,新問題又來了,兩個JPanel中的內容不一樣,上面多,下面少,但是現在面板卻是一樣大,要改成面板高度自動適應。
    其實這只需要修改一行代碼就可以了,代碼如下:
    舊代碼:
    CP.setLayout(new GridLayout(3125));  
    新代碼:
    CP.setLayout(new BoxLayout(CP, BoxLayout.Y_AXIS)); // 沿垂直方向布置組件
    舊代碼的處理方式是網格布局,新代碼的方式是用BoxLayout布局管理器,它會按要求垂直或水平分布。

    以下代碼創建了一個JPanel容器,它采用垂直 BoxLayout,在這個容器中包含兩個Button,這兩個Button沿垂直方向分布,并且保持像素為 5 的固定垂直間隔。
        JPanel panel = new JPanel();
        panel.setLayout(
    new BoxLayout(panel, BoxLayout.Y_AXIS));// 沿垂直方向布置組件
        panel.add(new JButton("Button1"));
        panel.add(Box.createVerticalStrut(
    5));
        panel.add(
    new JButton("Button2"));

    源代碼:下載

    CoderDream 2008-04-29 16:16 發表評論
    ]]>
    Oracle使用JDBC進行增刪改查http://www.tkk7.com/coderdream/archive/2008/04/14/192874.htmlCoderDreamCoderDreamMon, 14 Apr 2008 09:55:00 GMThttp://www.tkk7.com/coderdream/archive/2008/04/14/192874.htmlhttp://www.tkk7.com/coderdream/comments/192874.htmlhttp://www.tkk7.com/coderdream/archive/2008/04/14/192874.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/192874.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/192874.html
    create table USERS
    (
      USERNAME 
    VARCHAR2(20not null,
      PASSWORD 
    VARCHAR2(20)
    )
    alter table USERS
      
    add constraint U_PK primary key (USERNAME)

    /**
     * JdbcExample.java
     *
     * Provider: CoderDream's Studio
     *
     * History
     *    Date(DD/MM/YYYY)    Author          Description
     * ----------------------------------------------------------------------------
     *    Apr 14, 2008                CoderDream        Created
     
    */

    package com.coderdream.jdbc.oracle;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    /**
     * 
    @author XL
     *
     
    */
    public class JdbcExample {


        
    private static Connection getConn() {
            String driver 
    = "oracle.jdbc.driver.OracleDriver";
            String url 
    = "jdbc:oracle:thin:@10.5.15.117:1521:csi";
            String username 
    = "scott";
            String password 
    = "tiger";
            Connection conn 
    = null;
            
    try {
                Class.forName(driver);
                
    // new oracle.jdbc.driver.OracleDriver();
                conn = DriverManager.getConnection(url, username, password);
            }
            
    catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            
    catch (SQLException e) {
                e.printStackTrace();
            }

            
    return conn;
        }

        
    private static int insert(String username, String password) {
            Connection conn 
    = getConn();
            
    int i = 0;
            String sql 
    = "insert into users (username,password) values(?,?)";
            PreparedStatement pstmt;
            
    try {
                pstmt 
    = conn.prepareStatement(sql);
                
    // Statement stat = conn.createStatement();
                pstmt.setString(1, username);
                pstmt.setString(
    2, password);
                i 
    = pstmt.executeUpdate();
                System.out.println(
    "resutl: " + i);

                pstmt.close();
                conn.close();
            }
            
    catch (SQLException e) {
                e.printStackTrace();
            }

            
    return i;
        }

        
    private static void query() {
            Connection conn 
    = getConn();
            String sql 
    = "select * from users";
            PreparedStatement pstmt;
            
    try {
                pstmt 
    = conn.prepareStatement(sql);
                ResultSet rs 
    = pstmt.executeQuery();
                
    while (rs.next()) {
                    System.out.println(
    "name: " + rs.getString("username")
                            
    + " \tpassword: " + rs.getString("password"));
                }

                rs.close();
                pstmt.close();
                conn.close();
            }
            
    catch (SQLException e) {
                e.printStackTrace();
            }

        }

        
    private static int update(String oldName, String newPass) {
            Connection conn 
    = getConn();
            
    int i = 0;
            String sql 
    = "update users set password='" + newPass
                    
    + "' where username='" + oldName + "'";
            PreparedStatement pstmt;
            
    try {
                pstmt 
    = conn.prepareStatement(sql);

                i 
    = pstmt.executeUpdate();
                System.out.println(
    "resutl: " + i);

                pstmt.close();
                conn.close();
            }
            
    catch (SQLException e) {
                e.printStackTrace();
            }

            
    return i;
        }
        
        
    private static int delete(String username) {
            Connection conn 
    = getConn();
            
    int i = 0;
            String sql 
    = "delete users where username='" + username + "'";
            PreparedStatement pstmt;
            
    try {
                pstmt 
    = conn.prepareStatement(sql);

                i 
    = pstmt.executeUpdate();
                System.out.println(
    "resutl: " + i);

                pstmt.close();
                conn.close();
            }
            
    catch (SQLException e) {
                e.printStackTrace();
            }

            
    return i;
        }

        
    /**
         * 
    @param args
         
    */
        
    public static void main(String[] args) {
            insert(
    "CDE""123");
            insert(
    "CoderDream""456");
            query();
            update(
    "CoderDream""456");
            query();
            delete(
    "CoderDream");
            query();
        }
    }


    CoderDream 2008-04-14 17:55 發表評論
    ]]>
    使用Tomcat插件,從eclipse將Web工程導出為WAR檔http://www.tkk7.com/coderdream/archive/2008/04/08/191462.htmlCoderDreamCoderDreamTue, 08 Apr 2008 05:43:00 GMThttp://www.tkk7.com/coderdream/archive/2008/04/08/191462.htmlhttp://www.tkk7.com/coderdream/comments/191462.htmlhttp://www.tkk7.com/coderdream/archive/2008/04/08/191462.html#Feedback1http://www.tkk7.com/coderdream/comments/commentRss/191462.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/191462.html 下載:地址

    2、安裝Tomcat插件,即將zip檔解壓,放入eclipse目錄下的 plugins 文件夾中。

    3、在項目上點右鍵,設置properties,在'Tomcat'下面設置'export   to   war   settings'輸入要導出的war文件路徑和文件名,確定,返回項目。


    4、在項目上點右鍵,選擇tomcat   project->Export  to the war file sets in project properties


    5、 進入C盤,可以看到csi.war文件正在生成,成功后會有提示框。這樣就可以通過Tomcat插件導出WAR檔了。


    CoderDream 2008-04-08 13:43 發表評論
    ]]>
    Struts中的按鈕響應事件http://www.tkk7.com/coderdream/archive/2008/03/14/186261.htmlCoderDreamCoderDreamFri, 14 Mar 2008 05:15:00 GMThttp://www.tkk7.com/coderdream/archive/2008/03/14/186261.htmlhttp://www.tkk7.com/coderdream/comments/186261.htmlhttp://www.tkk7.com/coderdream/archive/2008/03/14/186261.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/186261.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/186261.html1、

    <html:form  action="getImporterDonneesTypeList.do">
                  <div class="finFormulaire1" onClick="document.forms[1].submit();" STYLE="position:relative;right:10%;">
                                 <div class="bouton" onclick="">
                                          <span class="bold">
                                              <rcd:label key="boutonNouveau"/>
                                          </span>
                                          <img src="<%= "/resources/"+ userMarque + "/img/common/btn/right.gif" %>" alt="" style="vertical-align:middle"/>
                                 </div>
                  </div>
                  </html:form>

    2

      function goBack(){
              document.forms[0].action="/initCommerentitesSearchAction.do";
              document.forms[0].method="post";
              document.forms[0].encoding="multipart/form-data";
              document.forms[0].submit();
          }

    <div class="finFormulaire" align="center">                           
                <div class="bouton" onClick="goBack();"><span class="bold"><rcd:label key="boutonRetour"/></span><img src="<%= "/resources/"+ userMarque + "/img/common/btn/right.gif" %>" alt="" style="vertical-align:middle"/></div>                       
    </div>



    CoderDream 2008-03-14 13:15 發表評論
    ]]>
    PSA bug修改記錄http://www.tkk7.com/coderdream/archive/2008/03/12/185585.htmlCoderDreamCoderDreamWed, 12 Mar 2008 02:23:00 GMThttp://www.tkk7.com/coderdream/archive/2008/03/12/185585.htmlhttp://www.tkk7.com/coderdream/comments/185585.htmlhttp://www.tkk7.com/coderdream/archive/2008/03/12/185585.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/185585.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/185585.html1、RCD-499:某個<html:text/>不能修改。

    style="color:#BCBCBC;">



    CoderDream 2008-03-12 10:23 發表評論
    ]]>
    如何解決中文版連接英文版DB2時,CodePage錯誤的問題?http://www.tkk7.com/coderdream/archive/2008/03/07/184573.htmlCoderDreamCoderDreamFri, 07 Mar 2008 10:02:00 GMThttp://www.tkk7.com/coderdream/archive/2008/03/07/184573.htmlhttp://www.tkk7.com/coderdream/comments/184573.htmlhttp://www.tkk7.com/coderdream/archive/2008/03/07/184573.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/184573.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/184573.html使用下面的命令就可以了:
    db2cmd

    然后:
    db2set db2codepage=1252

    后面的數字是安裝DB2時數據庫的CodePage。

    DB2 CODEPAGE --代碼頁查詢列表
    http://www.itdata.cn/bbs/dispbbs.asp?boardid=6&id=928
    --------------------------------------------------
    Conversion between any of the following codepages is provided.

    37 (=x0025) EBCDIC US English
    273 (=x0111) EBCDIC German
    277 (=x0115) EBCDIC Danish/Norwegian
    278 (=x0116) EBCDIC Finnish/Swedish
    280 (=x0118) EBCDIC Italian
    284 (=x011C) EBCDIC Spanish
    285 (=x011D) EBCDIC UK English
    297 (=x0129) EBCDIC French
    300 (=x012C) EBCDIC Japanese DBCS
    301 (=x012D) Japanese PC DBCS
    420 (=x01A4) EBCDIC Arabic
    424 (=x01A8) EBCDIC Arabic
    437 (=x01B5) PC-ASCII US
    500 (=x01F4) EBCDIC International
    803 (=x0323) Hebrew Set A
    813 (=x032D) ISO8859-7 Greek
    819 (=x0333) ISO8859-1 Western European
    833 (=x0341) IBM-833: Korean
    834 (=x0342) IBM-834: Korean Host DBCS
    835 (=x0343) EBCDIC Traditional Chinese DBCS
    836 (=x0344) EBCDIC Simplified Chinese SBCS
    838 (=x0346) EBCDIC Thai SBCS
    850 (=x0352) ISO8859-1 Western European
    852 (=x0354) PC-ASCII Eastern European
    855 (=x0357) PC-ASCII Cyrillic
    856 (=x0358) PC-ASCII Hebrew
    857 (=x0359) PC-ASCII Turkish
    858 (=x035A) PC-ASCII Western European with Euro
    860 (=x035C) PC-ASCII Portuguese
    861 (=x035D) PC-ASCII Icelandic
    862 (=x035E) PC-ASCII Hebrew
    863 (=x035F) PC-ASCII Canadian French
    864 (=x0360) PC-ASCII Arabic
    865 (=x0361) PC-ASCII Scandinavian
    866 (=x0362) PC-ASCII Cyrillic #2
    868 (=x0364) PC-ASCII Urdu
    869 (=x0365) PC-ASCII Greek
    870 (=x0366) EBCDIC Eastern Europe
    871 (=x0367) EBCDIC Icelandic
    872 (=x0368) PC-ASCII Cyrillic with Euro
    874 (=x036A) PC-ASCII Thai SBCS
    875 (=x036B) EBCDIC Greek
    880 (=x0370) EBCDIC Cyrillic
    891 (=x037B) IBM-891: Korean
    897 (=x0381) PC-ASCII Japan Data SBCS
    903 (=x0387) PC Simplified Chinese SBCS
    904 (=x0388) PC Traditional Chinese Data - SBCS
    912 (=x0390) ISO8859-2 Eastern European
    915 (=x0393) ISO8859-5 Cyrillic
    916 (=x0394) ISO8859-8 Hebrew
    918 (=x0396) EBCDIC Urdu
    920 (=x0398) ISO8859-9 Turkish
    921 (=x0399) ISO Baltic
    922 (=x039A) ISO Estonian
    923 (=x039B) ISO8859-15 Western Europe with euro (Latin 9)
    924 (=x039C) EBCDIC Western Europe with euro
    927 (=x039F) PC Traditional Chinese DBCS
    928 (=x03A0) PC Simplified Chinese DBCS
    930 (=x03A2) EBCDIC Japanese Katakana/Kanji mixed
    932 (=x03A4) Japanese OS/2
    933 (=x03A5) EBCDIC Korean Mixed
    935 (=x03A7) EBCDIC Simplified Chinese Mixed
    937 (=x03A9) EBCDIC Traditional Chinese Mixed
    939 (=x03AB) EBCDIC Japanese Latin/Kanji mixed
    941 (=x03AD) Japanese PC DBCS - for open systems
    942 (=x03AE) Japanese PC Data Mixed - extended SBCS
    943 (=x03AF) Japanese PC Mixed - for open systems
    944 (=x03BO) Korean PC data Mixed - extended SBCS
    946 (=x03B2) Simplified Chinese PC data Mixed - extended SBCS
    947 (=x03B3) PC Traditional Chinese DBCS
    948 (=x03B4) PC Traditional Chinese Mixed - extended SBCS
    949 (=x03B5) PC Korean Mixed - KS code
    950 (=x03B6) PC Traditional Chinese Mixed - big5
    951 (=x03B7) PC Korean DBCS - KS code
    970 (=x03CA) euc Korean
    1004 (=x03EC) PC Data Latin1
    1006 (=x03EE) ISO Urdu
    1008 (=x03F0) ASCII Arabic 8-bit ISO
    1025 (=x0401) EBCDIC Cyrillic
    1026 (=x0402) EBCDIC Turkish
    1027 (=x0403) EBCDIC Japanese Latin
    1040 (=x0410) IBM-1040: Korean
    1041 (=x0411) Japanese PC - extended SBCS
    1042 (=x0412) PC Simplified Chinese - extended SBCS
    1043 (=x0413) PC Traditional Chinese - extended SBCS
    1046 (=x0416) PC-ASCII Arabic
    1047 (=x0417) IBM-1047: Western European
    1051 (=x041B) ASCII roman8 for HP Western European
    1088 (=x0440) PC Korean SBCS - KS code
    1089 (=x0441) ISO8859-6 Arabic
    1097 (=x0449) EBCDIC Farsi
    1098 (=x044A) PC-ASCII Farsi
    1112 (=x0458) EBCDIC Baltic (Latvian/Lithuanian)
    1114 (=x045A) PC Traditional Chinese - big 5 SBCS
    1115 (=x045B) PC Simplified Chinese SBCS
    1122 (=x0462) EBCDIC Estonian
    1123 (=x0463) EBCDIC Ukrainian
    1124 (=x0464) UNIX-ASCII Ukrainian
    1131 (=x046B) PC-ASCII Belarus
    1140 (=x0474) EBCDIC USA, with euro (like 037)
    1141 (=x0475) EBCDIC Austria, Germany, with euro (like 273)
    1142 (=x0476) EBCDIC Denmark, Norway, with euro (like 277)
    1143 (=x0477) EBCDIC Finland, Sweden, with euro (like 278)
    1144 (=x0478) EBCDIC Italy, with euro (like 280)
    1145 (=x0479) EBCDIC Spain, with euro (like 284)
    1146 (=x047A) EBCDIC UK, with euro (like 285)
    1147 (=x047B) EBCDIC France, with euro (like 297)
    1148 (=x047C) EBCDIC International, with euro (like 500)
    1149 (=x047D) EBCDIC Iceland, with euro (like 871)
    1200 (=x04B0) Unicode - UCS-2
    1208 (=x04B8) Unicode - UTF-8
    1250 (=x04E2) Windows - Eastern European
    1251 (=x04E3) Windows - Cyrillic
    1252 (=x04E4) Windows - Western European
    1253 (=x04E5) Windows - Greek
    1254 (=x04E6) Windows - Turkish
    1255 (=x04E7) Windows - Hebrew
    1256 (=x04E8) Windows - Arabic
    1257 (=x04E9) Windows - Baltic Rim
    1275 (=x04FB) Apple - Western European
    1280 (=x0500) Apple - Greek
    1281 (=x0501) Apple - Turkish
    1282 (=x0502) Apple - Eastern European
    1283 (=x0503) Apple - Cyrillic
    1284 (=x0504) IBM-504: Eastern European
    1285 (=x0505) IBM-505: Eastern European
    1363 (=x0553) Windows Korean PC Mixed including 11,172 full hangul
    1364 (=x0554) Korean Host Mixed extended including 11,172 full hangul
    1380 (=x0564) PC Simplified Chinese DBCS
    1381 (=x0565) PC Simplified Chinese Mixed
    1383 (=x0567) euc Simplified Chinese Mixed
    1386 (=x056A) PC Simplified Chinese Data GBK Mixed
    1388 (=x056C) DBCS Host Simplified Chinese Data GBK Mixed
    5346 (=x14E2) Windows-Eastern European with Euro (like 1250)
    5347 (=x14E3) Windows - Cyrillic with Euro (like 1251)
    5348 (=x14E4) Windows-Western European with Euro (like 1252)
    5349 (=x14E5) Windows-Windows - Greek with Euro (like 1253)
    5350 (=x14E6) Windows - Turkish with Euro (like 1254)
    5351 (=x14E7) Windows - Hebrew with Euro (like 1255)
    5352 (=x14E8) Windows - Arabic with Euro (like 1256)
    5353 (=x14E9) Windows - Baltic Rim with Euro (like 1257)
    5354 (=x14EA) 'Windows - Vietnamese with Euro (like 1258)



    CoderDream 2008-03-07 18:02 發表評論
    ]]>
    編寫查詢條件不區分大小寫的SQL語句!http://www.tkk7.com/coderdream/archive/2008/03/05/184063.htmlCoderDreamCoderDreamWed, 05 Mar 2008 10:06:00 GMThttp://www.tkk7.com/coderdream/archive/2008/03/05/184063.htmlhttp://www.tkk7.com/coderdream/comments/184063.htmlhttp://www.tkk7.com/coderdream/archive/2008/03/05/184063.html#Feedback4http://www.tkk7.com/coderdream/comments/commentRss/184063.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/184063.html
    select * from code_table_data t where Upper(t.DETAIL_DESC)=Upper('tr');

    2、 模糊查詢:在Java中將條件轉為大寫,然后將該變量放入百分號(%)之間!
    select * from code_table_data t where Upper(t.DETAIL_DESC) like '%T%';


    CoderDream 2008-03-05 18:06 發表評論
    ]]>
    新項目如何通過出錯頁面找到相關的JSP頁面和Java類http://www.tkk7.com/coderdream/archive/2008/03/05/184010.htmlCoderDreamCoderDreamWed, 05 Mar 2008 07:45:00 GMThttp://www.tkk7.com/coderdream/archive/2008/03/05/184010.htmlhttp://www.tkk7.com/coderdream/comments/184010.htmlhttp://www.tkk7.com/coderdream/archive/2008/03/05/184010.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/184010.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/184010.html1、進入出錯頁面,找到該頁面的鏈接: 這里鏈接地址為:http://localhost:8082/getSideBar.do?id=481



    2、在Project文檔中找到記錄相關信息的Excel文件:




    3、打開該文件,找到對應信息:





    4、在struts-config.xml中找到相關信息:

    注意:項目中有很多struts-config.xml,一定要找RCDWeb->WebContent->WEB-INF下面的struts-config.xml和conf下面的tiles-def.xml。


    先通過<forward>標簽,找到相應的Action.do:
     
    然后通過該信息,找到具體的Action的詳細信息:


    從上圖可以找到相關的Java類的信息,type對應的值就是。

    5、查找相關的Jsp:

    通過上圖的<forward name="success" ...>,可以通過查找tiles-def.xml文件找到相應的Jsp頁面。
     

    PS:這兩個星期被安排到一個新項目改Bug,這個項目是一個法國項目,架構都是法國人自己寫的。看來還有很多東西要學習,不然發現問題了也不知如何下手。

    CoderDream 2008-03-05 15:45 發表評論
    ]]>
    如何從CVS中取文檔(二) http://www.tkk7.com/coderdream/archive/2008/03/04/183620.htmlCoderDreamCoderDreamTue, 04 Mar 2008 02:27:00 GMThttp://www.tkk7.com/coderdream/archive/2008/03/04/183620.htmlhttp://www.tkk7.com/coderdream/comments/183620.htmlhttp://www.tkk7.com/coderdream/archive/2008/03/04/183620.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/183620.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/183620.html如何從CVS中添加工程(一)

    CVS館不僅能管理源代碼,同時也可以用來管理文檔。

    一般,我們用eclipse來取文檔,用wincvs客戶端來取文檔。

    1、本地環境(繁體中文)與CVS館的環境(簡體中文)不一致

    這里我們要用到微軟提供的一個軟件:Microsoft AppLocale,下載地址:http://download.pchome.net/download-17721.html
    軟件詳細信息
      
       中文程序亂碼消除器,消除中文程序接口上的亂碼。如果您在繁體中文 Windows 上執行一個簡體字版本的程序,那么這個程序的外觀可能會變成許多中文亂碼,讓您無法辨識。此時便可試試本程序,且看他是否能為您化腐朽為神奇。 

     步驟:

    A、選擇將要設置的exe文件;



    B、選擇要運行的環境語言(如:簡體中文)。這樣啟動的wincvs的字符環境就是簡體中文了。



    C、然后建立快捷方式放到桌面方便以后使用:



    2、登錄取文檔:

    A、配置好服務器地址和文件目錄,登錄界面如下:



    輸入密碼,登錄成功:
    CVSROOT: ***@10.5.6.32:/psacvs (password authentication)
    TCL or Python are not available, shell is disabled
    cvs -d :pserver:***@10.5.6.32:/psacvs login 
    Logging in to :pserver:***@
    10.5.6.32:2401:/psacvs

    ***** CVS exited normally with code 0 *****

    B、然后在本地建立一個文件夾,如:psa,在wincvs中點擊文件夾psa右鍵,選擇“Checkout settings”:



    C、通過“Module name and path on the server:”的下拉選單我們可以選擇要Checkout的文檔工程,如果沒有,可以直接輸入,如:“003627W-ARCAD”:



    D、如果輸入沒有錯誤,就會正常取出文檔,而且簡體中文文件名不會顯示亂碼:

     

    PS:不過如果還有法文的文件名,那亂碼就不可避免了!

    CoderDream 2008-03-04 10:27 發表評論
    ]]>
    第8章接口http://www.tkk7.com/coderdream/archive/2008/02/19/180631.htmlCoderDreamCoderDreamTue, 19 Feb 2008 10:03:00 GMThttp://www.tkk7.com/coderdream/archive/2008/02/19/180631.htmlhttp://www.tkk7.com/coderdream/comments/180631.htmlhttp://www.tkk7.com/coderdream/archive/2008/02/19/180631.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/180631.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/180631.html8.1 接口的概念和基本特征 (1)、接口中的成員變量默認都是public、static、final類型的,必須被顯式初始化;
    (2)、接口中的方法默認都是public、abstract類型的;
    (3)、接口中只能包含public、static、final類型的成員變量和public、abstract類型的成員方法;
    (4)、接口沒有構造方法,不能被實例化;
    (5)、一個接口不能實現另一個接口,但可以繼承多個其他接口;
    (6)、接口必須通過類來實現它的抽象方法。類實現接口的關鍵字是implements;
    (7)、與子類繼承抽象父類相似,當類實現了某個接口時,它必須實現接口中所有的抽象方法,否則這個類必須被定義為抽象類;
    (8)、不允許創建接口類型的實例,但允許定義接口類型的引用變量,該變量引用實現了這個接口的類的實例;
    (9)、一個類只能繼承一個直接的父類,但能實現多個接口。

    8.2 比較抽象類與接口

    相同點:
    • 代表系統的抽象層
    • 都不能被實例化
    • 都能包含抽象方法
    兩大區別:
    • 在抽象類中可以為部分方法提供默認的實現,從而避免在子類中重復實現它們,提高代碼的可重用性,這是抽象類的優勢所在;而接口中只能包含抽象方法;
    • 一個類只能繼承一個直接的父類,這個父類有可能是抽象類;但一個類可以實現多個接口,這是接口的優勢所在。 
    使用接口和抽象類的原則:
    1. 用接口作為系統與外界交互的窗口;
    2. 由于外界使用者依賴系統的接口,并且系統內部會實現接口,因此接口本身必須十分穩定,接口一旦制訂,就不允許隨意修改,否則會對外界使用者及系統內部都造成影響。
    3. 用抽象類來定制系統中的擴展點。 

    8.3 與接口相關的設計模式

    8.3.1 定制服務模式
    如何設計接口?定制服務模式提出了設計精粒度的接口的原則。
    8.3.2 適配器模式

    當兩個系統之間接口不匹配時,如果處理?適配器模式提供了接口轉換方案。

    包括繼承實現方式和組合實現方式。優先考慮用組合關系來實現適配器。

    8.3.3 默認適配器模式
    為了簡化編程,JDK為MouseListener提供了一個默認適配器MouseAdapter,它實現了MouseListener接口,為所有的方法提供了空的方法體。用戶自定義的MyMouseLIstener監聽器可以繼承MouseAdapter類,在MyMouseListener類中,只需要覆蓋特定的方法,而不必實現所有的方法。使用默認適配器可以簡化編程,但缺點是該類不能在繼承其他的類。
    8.3.4 代理模式

    下面以房屋出租人的代理為例,介紹代理模式的運用。在下圖中,出租人Renter和代理Deputy都具有RenterIFC接口。Tenant類代表租賃人,HouseMarket類代表整個房產市場,它記錄了所有房產代理人的信息,出租人從房產市場找到房產代理人。



    為了簡化起見,假定一個代理人只會為一個出租人做代理,租賃人租房屋rentHouse()的大致過程如下:

    1. 從房產市場上找到一個房產代理人,即調用HouseMarket對象的findRenter()方法;
    2. 報出期望的租金價格,征求代理人的意見,即調用Deputy對象的isAgree()方法;
    3. 代理人的處理方式為:如果租賃人的報價低于出租人的租金價格底線,就立即做出拒絕答復;否則征求出租人的意見,即調用Renter對象的isAgree()方法。
    4. 出租人的處理方式為:如果租賃人的報價比租金價格底線多100元,就同意出租
    5. 如果租賃人得到代理人同意的答復,就從存款中取出租金,通知代理人領取租金,即調用Deputy對象的fetchRent()方法
    6. 代理人通知出租人領取租金,即調用Renter對象的fecthRent()方法。 


     房屋租賃交易順利執行的時序圖

    源代碼:

    /**
     * RetnerIFC 接口,它定義了出租人的兩個行為,即決定是否同意按租賃人提出的價格出租房屋,以及收房租
     * 
     * 
    @author XL
     * 
     
    */
    public interface RenterIFC {
        
    /**
         * 是否同意按租賃人提出的價格出租房屋
         * 
         * 
    @param expectedRent
         * 
    @return
         
    */
        
    public boolean isAgree(double expectedRent);

        
    /**
         * 收房租
         * 
         * 
    @param rent
         
    */
        
    public void fetchRent(double rent);
    }


    /**
     * 房屋出租人
     * 
     * 
    @author XL
     * 
     
    */
    public class Renter implements RenterIFC {

        
    /**
         * 房屋租金最低價格
         
    */
        
    private double rentDeadLine;

        
    /**
         * 存款
         
    */
        
    private double money;

        
    /**
         * 
    @param rentDeadLine
         * 
    @param money
         
    */
        
    public Renter(double rentDeadLine, double money) {
            
    super();
            System.out.println(
    "New Renter, rentDeadLine: " + rentDeadLine
                    
    + ", saveMoney: " + money);
            
    this.rentDeadLine = rentDeadLine;
            
    this.money = money;
        }

        
    /*
         * (non-Javadoc)
         * 
         * @see chapter08.d0800.RenterIFC#fetchRent(double)
         
    */
        
    public void fetchRent(double rent) {
            System.out.println(
    "OK, you can use the house.");
            money 
    += rent;
        }

        
    /*
         * (non-Javadoc) 如果租賃人的期望價格比房屋租金最低價格多100元,則同意出租
         * 
         * @see chapter08.d0800.RenterIFC#isAgree(double)
         
    */
        
    public boolean isAgree(double expectedRent) {
            System.out.println(
    "If the money less 100 than the rentDeadLine.");
            
    return expectedRent - this.rentDeadLine > 100;
        }

        
    /**
         * 
    @return
         
    */
        
    public double getRentDeadLine() {
            
    return rentDeadLine;
        }
    }


    /**
     * 房產代理人
     * 
     * 
    @author XL
     * 
     
    */
    public class Deputy implements RenterIFC {

        
    private Renter renter;

        
    /**
         * 接受代理
         * 
         * 
    @param renter
         
    */
        
    public void registerRenter(Renter renter) {
            System.out.println(
    "OK, I have some business.");
            
    this.renter = renter;
        }

        
    public void fetchRent(double rent) {
            System.out.println(
    "Get the monty: " + rent);
            renter.fetchRent(rent);
        }

        
    /*
         * (non-Javadoc) 如果租賃人的期望價格低于房屋租金最低價格,則不同意出租 否則請示出租人的意見
         * 
         * @see chapter08.d0800.RenterIFC#isAgree(double)
         
    */
        
    public boolean isAgree(double expectedRent) {
            
    //
            if (expectedRent < renter.getRentDeadLine()) {
                System.out.println(
    "Sorry, you can't rent the house.");
                
    return false;
            } 
    else {
                System.out.println(
    "Let me ask the renter.");
                
    return renter.isAgree(expectedRent);
            }
        }

    }

     

    import java.util.HashSet;
    import java.util.Set;

    /**
     * 
    @author XL
     * 
     
    */
    public class HouseMarket {
        
    private static Set<RenterIFC> renters = new HashSet<RenterIFC>();

        
    public static void registerRenter(RenterIFC deputy) {
            System.out.println(
    "A new man has registered!");
            renters.add(deputy);
        }

        
    public static RenterIFC findRenter() {
            System.out.println(
    "Let's find something!");
            
    return (RenterIFC) renters.iterator().next();
        }
    }

     

    /**
     * 房屋租賃人
     * 
     * 
    @author XL
     * 
     
    */
    public class Tenant {
        
    private double money;

        
    public Tenant(double money) {
            
    // 
            System.out.println("New Tenant!");
            System.out.println(
    "I have " + money);
            
    this.money = money;
        }

        
    public boolean rentHouse(double expectedRent) {
            
    // 從房地產市場找到一個房產代理人
            RenterIFC renter = HouseMarket.findRenter();
            
            System.out.println(
    "I can offer " + expectedRent);
            
            
    // 如果代理人不同意預期的租金價格,就拉倒,否則繼續執行
            if (!renter.isAgree(expectedRent)) {
                System.out.println(
    "I can't offer any more!");
                
    return false;
            }

            
    // 從存款中取出預付租金
            money -= expectedRent;
            System.out.println(
    "OK, get the money, " + expectedRent);

            
    // 把租金交給房產代理人
            renter.fetchRent(expectedRent);

            
    return true;
        }
    }

     

    /**
     * 
    @author XL
     *
     
    */
    public class AppMain {

        
    /**
         * 
    @param args
         
    */
        
    public static void main(String[] args) {
            
    // 創建一個房屋出租人,房屋租金最低價格為2000元,存款1萬元
            Renter renter = new Renter(200010000);
            
            
    // 創建一個房產代理人
            Deputy deputy = new Deputy();
            
            
    // 房產代理人到房產市場登記
            HouseMarket.registerRenter(deputy);
            
            
    // 建立房屋出租人和房產代理人的委托關系
            deputy.registerRenter(renter);
            
            
            
    // 創建一個房屋租賃人,存款為2萬元
            Tenant tenant = new Tenant(20000);
            
            
    // 房屋租賃人試圖租賃期望租金為1800元的房屋,遭到房產代理人拒絕
            tenant.rentHouse(1800);
            
            
    // 房屋租賃人試圖租賃期望租金為2300元的房屋,租房成功
            tenant.rentHouse(2300);
        }

    }

    輸出結果:

    New Renter, rentDeadLine: 2000.0, saveMoney: 10000.0
    A new man has registered!
    OK, I have some business.
    New Tenant!
    I have 20000.0
    Let's find something!
    I can offer 1800.0
    Sorry, you can't rent the house.
    I can't offer any more!
    Let's find something!
    I can offer 2300.0
    Let me ask the renter.
    If the money less 100 than the rentDeadLine.
    OK, get the money, 2300.0
    Get the monty: 2300.0
    OK, you can use the house.


    8.3.5 標識類型模式

    標識類型接口沒有任何方法,僅代表一種抽象類型。
    在JDK中,有如下兩個典型的標識類型接口:

    • java.io.Serializable接口:實現該接口的類可以被序列化。
    • java.io.Remote接口:實現該接口的類的實例可以作為遠程對象。
    8.3.6 常量接口模式


    CoderDream 2008-02-19 18:03 發表評論
    ]]>
    整理:WinCVS與CVSNT簡明使用手則http://www.tkk7.com/coderdream/archive/2007/12/25/170356.htmlCoderDreamCoderDreamTue, 25 Dec 2007 08:57:00 GMThttp://www.tkk7.com/coderdream/archive/2007/12/25/170356.htmlhttp://www.tkk7.com/coderdream/comments/170356.htmlhttp://www.tkk7.com/coderdream/archive/2007/12/25/170356.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/170356.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/170356.htmlWinCVSCVSNT簡明使用手則

    (作者:Jackey,整理:CoderDream)

    1       前言:

    CVS是版本控制的利器,目前在LinuxWindows下都有不同版本;但是國內大多數應用介紹都是基于Linux等開放源代碼的開放性軟件組織,而且講解的也不系統,讓人摸不著頭腦;Windows下的CVS使用介紹更是了了無幾。

    本文是針對WindowsLAN環境下使用CVS的經驗介紹,一步一步的向您介紹如何配置和使用CVS的服務器端和客戶端。同時,本文只使用到了CVS當中最基本的東西,還有很多更為高級的東西,本文暫不涉及。

    完整版CHM:點擊下載



    CoderDream 2007-12-25 16:57 發表評論
    ]]>
    對象排序與按漢語拼音排序http://www.tkk7.com/coderdream/archive/2007/12/19/168759.htmlCoderDreamCoderDreamWed, 19 Dec 2007 08:07:00 GMThttp://www.tkk7.com/coderdream/archive/2007/12/19/168759.htmlhttp://www.tkk7.com/coderdream/comments/168759.htmlhttp://www.tkk7.com/coderdream/archive/2007/12/19/168759.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/168759.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/168759.html閱讀全文

    CoderDream 2007-12-19 16:07 發表評論
    ]]>
    【轉貼】Lomboz——Eclipse下J2EE開發最主要的一個開源插件 http://www.tkk7.com/coderdream/archive/2007/12/10/166733.htmlCoderDreamCoderDreamMon, 10 Dec 2007 09:39:00 GMThttp://www.tkk7.com/coderdream/archive/2007/12/10/166733.htmlhttp://www.tkk7.com/coderdream/comments/166733.htmlhttp://www.tkk7.com/coderdream/archive/2007/12/10/166733.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/166733.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/166733.htmlhttp://blog.sina.com.cn/s/blog_49b7e6a101000dab.html 

    Lomboz是Eclipse的一個主要的開源插件(open-source plug-in),Lomboz插件能夠使Java開發者更好的使用Eclipse去創建,調試和部署一個100%基于J2EE的Java應用服務器。

    Lomboz插件的使用,使得Eclipse將多種J2EE的元素、Web應用的開發和最流行的應用服務器車結合為一體。

    Lomboz的主要功能有:

    1、  使用HTML pages, servlets, JavaServer" Page (JSP) files等方式建立Web應用程序

    2、  JSP的編輯帶有高亮顯示和編碼助手

    3、  JSP語法檢查

    4、  利用Wizard創建Web應用和EJB應用

    5、  利用Wizard創建EJB客戶端測試程序

    6、  支持部署J2EE Web應用檔案(EAR),Web模塊文件(WAR)和EJB檔案文件(JAR)

    7、  利用Xdoclet開發符合EJB1.1和2。0的應用

    8、  能夠實現端口對端口的本地和遠程的測試應用服務

    9、  能夠支持所有的有可擴展定義的Java應用服務

    10、能夠利用強大的Java調試器調試正在運行的服務器端代碼(JSP&EJB)

    11、通過使用Wizard和代碼生成器提高開發效率

    12、創建Web服務客戶端的WSDL形式的文件

     

    Lomboz適用的服務器有:

    Apache Tomcat, JBOSS, JOnAS, Resin, Orion, JRun, Oracle IAS, BEA WebLogic Server andIBM WebSphere

    在安裝Lomboz插件得時候,要安裝emf-sdo-runtime-2.0.0插件,要不然,你得Eclipse雖然加載了Lomboz插件,但是在你得視圖里面還是不會出現Lomboz選項。

    裝完這些,再按照一般文檔里面得步驟。就沒有問題了。



    CoderDream 2007-12-10 17:39 發表評論
    ]]>
    【轉載】配置環境(windows XP+Eclipse 3.3+tomcat 6.0+lomboz3.3)http://www.tkk7.com/coderdream/archive/2007/12/10/166727.htmlCoderDreamCoderDreamMon, 10 Dec 2007 09:35:00 GMThttp://www.tkk7.com/coderdream/archive/2007/12/10/166727.htmlhttp://www.tkk7.com/coderdream/comments/166727.htmlhttp://www.tkk7.com/coderdream/archive/2007/12/10/166727.html#Feedback1http://www.tkk7.com/coderdream/comments/commentRss/166727.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/166727.html WINDOWS XP SP2
    JDK 1.6
    TOMCAT 6.0
    ECLIPSE 3.3
    LOMBOZ 3.3

    一. JDK(JDK1.6)的安裝與配置
    (1) 在JAVA官方網站下載JDK工具包(JDK1.6)
    http://java.sun.com/javase...

    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    (2) 執行安裝文件,如圖
    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片



    (3) 配置JAVA運行環境:
    【開始】-【控制面板】-【性能和維護】-【系統】-【高級】或者右鍵單擊【我的電腦】-【屬性】-【高級】
    點擊在新窗口中瀏覽此圖片

    進入【環境變量】界面,選擇【系統變量】中的【Path】選項
    點擊在新窗口中瀏覽此圖片

    在【變量值】項的初始端輸入您的JDK安裝目錄(%JAVA_HOME%\bin,%JAVA_HOME%為JAVA安裝目錄)至bin目錄,注意:不要忘記分號。
    點擊在新窗口中瀏覽此圖片

    (4) 測試
    【開始】-【運行】-【cmd】-【java -version】可以查看您當前的JDK版本
    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    在C盤根目錄中創建一文本文檔,鍵入以下語句(如圖),并保存為JAVA文件,注意:CLASS類名與保存的文檔名必須一致,且大小寫敏感。
    點擊在新窗口中瀏覽此圖片

    在命令行模式中測試剛剛編寫的JAVA文件(如圖),運行成功則顯示Hello World!
    點擊在新窗口中瀏覽此圖片

    二. Tomcat6.0的安
    (1) 下載Tomcat安裝包
    http://tomcat.apache.org/d...

    點擊在新窗口中瀏覽此圖片

    (2) 執行安裝文件,如圖
    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    (3) 測試(測試結束后關閉Tomcat服務器)
    在%TOMCAT_HOME%\bin目錄下執行tomcat6w.exe(%TOMCAT_HOME%為Tomcat安裝目錄),點擊Start啟動Tomcat服務器。
    點擊在新窗口中瀏覽此圖片

    打開瀏覽器,在地址欄中輸入:http://localhost:8080 運行成功則出現如下畫面
    點擊在新窗口中瀏覽此圖片

    PS:示例中的Tomcat為Windows Service Installer(.exe)程序,安裝成功后無需再進行額外配置。

    三. Eclipse(Eclipse3.3)與Lomboz(Lomboz3.3)的安裝
    (1) 下載Eclipse與Lomboz合包(Eclipse與Lomboz版本號必須匹配,否則會引發錯誤)
    http://forge.objectweb.org...

    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    (2) 執行程序(解壓后直接使用,無需安裝),如圖
    點擊在新窗口中瀏覽此圖片

    注意:Lomboz3.1版本以上在Eclipse首選項界面中均不會再有【Lomboz】選項
    點擊在新窗口中瀏覽此圖片

    四. Tomcat插件的安裝與配置
    (1) 下載TomcatPluginV321.zip,鑒于官網無法訪問,可以去百度、谷歌搜索,以下地址僅供參考
    http://d.download.csdn.net...(需要先注冊)

    (2) 將TomcatPluginV321.zip解壓縮到eclipse安裝目錄中的plugins文件夾下

    (3) 在命令行模式中重新啟動Eclipse(以-clean模式啟動)
    點擊在新窗口中瀏覽此圖片

    (4) 配置Tomcat version與Tomcat home(參照自身的安裝路徑)
    打開Eclipse,選擇【Window】-【Preferences】-【Tomcat】
    點擊在新窗口中瀏覽此圖片

    五. 集成環境測試(JSP程序)
    創建一個新項目
    打開Eclipse,選擇【File】-【New】-【Project】-【Web】
    點擊在新窗口中瀏覽此圖片

    輸入項目名Test,點擊Finish
    點擊在新窗口中瀏覽此圖片

    創建服務器,選擇【File】-【New】-【Other】-【Server】
    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    創建JSP文件,選擇【File】-【New】-【Other】-【Web】
    點擊在新窗口中瀏覽此圖片

    輸入文件名
    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    編輯JSP文件,如圖
    點擊在新窗口中瀏覽此圖片

    打開服務器,右擊選擇Start
    點擊在新窗口中瀏覽此圖片

    點擊在新窗口中瀏覽此圖片

    運行服務器,選擇【Run】-【Run As】-【Run on Server】
    點擊在新窗口中瀏覽此圖片

    打開瀏覽器,在地址欄中輸入 http://localhost:8080/Test/Test.jsp 運行成功則顯示以下畫面

    CoderDream 2007-12-10 17:35 發表評論
    ]]>
    【轉貼】使用links方式安裝Eclipse插件http://www.tkk7.com/coderdream/archive/2007/12/10/166726.htmlCoderDreamCoderDreamMon, 10 Dec 2007 09:29:00 GMThttp://www.tkk7.com/coderdream/archive/2007/12/10/166726.htmlhttp://www.tkk7.com/coderdream/comments/166726.htmlhttp://www.tkk7.com/coderdream/archive/2007/12/10/166726.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/166726.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/166726.html   當前配置XP SP1,eclipse3.0.1

       現在假設我的eclipse安裝目錄是D:\eclipse,待安裝插件目錄是D:\plug-in ,我將要安裝LanguagePackFeature(語言包)、emf-sdo-xsd-SDK、GEF-SDK、Lomboz這四個插件。

       先把這四個插件程序全部放在D:\plug-in目錄里,分別解壓。如Lomboz3.0.1.zip解壓成Lomboz3.0.1目錄,這個目錄包含一個plugins目錄,要先在Lomboz3.0.1目錄中新建一個子目錄eclipse,然后把plugins目錄移動到剛建立的eclipse目錄中,即目錄結構要是這樣的:D:\plug-in\Lomboz3.0.1\eclipse\plugins 

       Eclipse 將會到指定的目錄下去查找 eclipse\features 目錄和eclipse\plugins 目錄,看是否有合法的功能部件和(或)插件。也就是說,目標目錄必須包含一個 \eclipse 目錄。如果找到,附加的功能部件和插件在運行期配置是將是可用的,如果鏈接文件是在工作區創建之后添加的,附加的功能部件和插件會作為新的配置變更來處理。

        其它壓縮文件解壓后若已經包含eclipse\plugins目錄,則不需要建立eclipse目錄。

        然后在 eclipse安裝目錄D:\eclipse目錄中建立一個子目錄links,在links目錄中建立一個link文件,比如 LanguagePackFeature.link,改文件內容為  path=D:/plug-in/LanguagePackFeature  即這個link文件要對應一個剛解壓后的插件目錄。

    說明:

     1. 插件可以分別安裝在多個自定義的目錄中。

     2. 一個自定義目錄可以安裝多個插件。

     3. link文件的文件名及擴展名可以取任意名稱,比如ddd.txt,myplugin都可以。

     4. link文件中path=插件目錄的path路徑分隔要用\\或是/

     5. 在links目錄也可以有多個link文件,每個link文件中的path參數都將生效。

     6. 插件目錄可以使用相對路徑。

       7. 可以在links目錄中建立一個子目錄,轉移暫時不用的插件到此子目錄中,加快eclipse啟動。 

       8.  如果安裝后看不到插件,把eclipse 目錄下的configuration目錄刪除,重啟即可。

     

    注意:關于用links方式安裝Lomboz插件,在編輯EJB時可能會產生問題,這個將會在有關Lomboz插件的文章中探討。



    CoderDream 2007-12-10 17:29 發表評論
    ]]>
    反射應用經驗:得到當前類的包名http://www.tkk7.com/coderdream/archive/2007/11/23/162644.htmlCoderDreamCoderDreamFri, 23 Nov 2007 07:34:00 GMThttp://www.tkk7.com/coderdream/archive/2007/11/23/162644.htmlhttp://www.tkk7.com/coderdream/comments/162644.htmlhttp://www.tkk7.com/coderdream/archive/2007/11/23/162644.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/162644.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/162644.html 如果你想通過反射機制得到當前包的某個類的實例,傳入類名的同時必須傳入包名。

    例如在包com.coderdream下有兩個類Shape,ShapeFactory,如果你想在ShapeFactory中的某個方法中用反射的方法生成Shape類,那么如果直接使用:
        Class.forName("Shape").newInstance();
    會拋出找不到類的異常,因為確實沒有Shape類,而只有com.coderdream.Shape類。

    但是我們傳參數時一般只會傳不帶包的類名,那么我們可以這樣處理:
        String packageName = new ShapeFactory().getClass().getPackage().getName();
        
    return (Shape) Class.forName(packageName + "." + className).newInstance();
    其中    new ShapeFactory().getClass().getPackage().getName() 會得到包名“com.coderdream”,我們只要加上“.”和類名就沒有問題了。



    CoderDream 2007-11-23 15:34 發表評論
    ]]>
    MySQL-Front 回來了!http://www.tkk7.com/coderdream/archive/2007/11/16/161081.htmlCoderDreamCoderDreamFri, 16 Nov 2007 09:23:00 GMThttp://www.tkk7.com/coderdream/archive/2007/11/16/161081.htmlhttp://www.tkk7.com/coderdream/comments/161081.htmlhttp://www.tkk7.com/coderdream/archive/2007/11/16/161081.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/161081.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/161081.html 被迫關閉的MySQL Front  現在更名為SQL Front 繼續開發,授權方式為開源,以下為原 mysqlfront.de 的注釋:

    MySQL-Front has been renamed to SQL-Front  
    MySQL-Front has been renamed to >> SQL-Front <<.

    Please help to publish the new new name by posting it in a lot of forums,
    and please update your links to this page.

    Thanks a lot for your help!

    We hope that humanity will learn to work together instead of fighting one another senselessly...
    -------------------------------------

    MySQL-Front has been renamed to >> SQL-Front <<.



    CoderDream 2007-11-16 17:23 發表評論
    ]]>
    [zt]利用腳本實現ADSL自動撥號上網http://www.tkk7.com/coderdream/archive/2007/11/16/161027.htmlCoderDreamCoderDreamFri, 16 Nov 2007 09:22:00 GMThttp://www.tkk7.com/coderdream/archive/2007/11/16/161027.htmlhttp://www.tkk7.com/coderdream/comments/161027.htmlhttp://www.tkk7.com/coderdream/archive/2007/11/16/161027.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/161027.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/161027.html我家使用ADSL撥號上網,每次需要上網的時候,都需要雙擊一下“寬帶上網”的圖標,然后在彈出的對話框上點擊“確認”,方可上網。

    我一向是個懶人,非常討厭這樣一次次的手工操作,有什么辦法實現自動撥號呢?一般來說,微軟那些用界面實現的東西,后臺其實還是一系列的腳本或者是配置命令。那么,我只要找到“寬帶上網”的配置文件所在,應該就可以了。

    首先查看“網絡連接”里面的“寬帶上網”的屬性,找不出什么有幫助的信息。然后將“寬帶上網”拉到桌面上,形成一個快捷方式出來,查看快捷方式的屬性,發現它的實際位置被微軟屏蔽了,看不到。

    不死心,將該快捷方式用UltraEdit打開,終于發現,原來它指向 “C:\Documents and Settings\All Users\application data\Microsoft\Network\Connections\Pbk”目錄下的 rasphone.pbk 文件。打開 rasphone.pbk,果然,我所建立的所有撥號方式,全部在里面。

    現在找到這個配置文件了,下一步就是找找看,用什么東西來運行它。

    查看 windows 幫助文件,搜索“自動撥號”,仔細查看后,找到了 rasdial 命令。通過幾次在命令行試運行該命令后,終于掌握了它的用法。至此,我只要編寫一個腳本,并將它放在桌面上,只要雙擊它一次,我就可以撥號上網了。而讓系統啟動的時候運行這個腳本,我就可以實現開機自動撥號了。

    腳本非常簡單,就下面那么一行:

    rasdial EntryName username password

    其中的 EntryName ,一定是要在上述 rasphone.pbk 里面真實存在的。比如,我的ADSL撥號名稱,叫做“寬帶上網”,我的用戶名是 Michael,密碼是 123456,則命令為

    rasdial 寬帶上網 Michael 123456

    最后,為了避免重裝系統之后需要重新配置這些撥號上網參數,將上述 rasphone.pbk 文件備份到 d:\backup 目錄下,則腳本也就改成下面這樣了:

    rasdial 寬帶上網 Michael 123456 /phonebook:d:\backup\rasphone.pbk


    CoderDream 2007-11-16 17:22 發表評論
    ]]>
    有關hashCode的文章http://www.tkk7.com/coderdream/archive/2007/11/16/161078.htmlCoderDreamCoderDreamFri, 16 Nov 2007 09:20:00 GMThttp://www.tkk7.com/coderdream/archive/2007/11/16/161078.htmlhttp://www.tkk7.com/coderdream/comments/161078.htmlhttp://www.tkk7.com/coderdream/archive/2007/11/16/161078.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/161078.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/161078.htmlEquals and Hash Code
    2、關于java的hashCode方法
    3、學習筆記:java中HashCode
    4、Java 理論與實踐: 哈希
    5、有效和正確定義hashCode()和equals()

    CoderDream 2007-11-16 17:20 發表評論
    ]]>
    SubVersion 的資源http://www.tkk7.com/coderdream/archive/2007/11/16/160787.htmlCoderDreamCoderDreamFri, 16 Nov 2007 09:16:00 GMThttp://www.tkk7.com/coderdream/archive/2007/11/16/160787.htmlhttp://www.tkk7.com/coderdream/comments/160787.htmlhttp://www.tkk7.com/coderdream/archive/2007/11/16/160787.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/160787.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/160787.html下載
    2、使用SUBCLIPSE——針對ECLIPSE的SUBVERSION插件
    3、eclipse插件下載

    4、如何結合使用 Subversion 和 Eclipse
    5、Book
    6、Subversion之路----利用 svnserve.exe 實現精細的目錄訪問控制(v1.0)
    7、subversion 一個小技巧 -如何一次添加分布在不同子目錄下的多個文件
    8、使用Subversion進行源代碼管理(一):體驗Subversion客戶端
    9、使用Subversion進行源代碼管理(二):創建和發布版本庫
    10、使用Subversion進行源代碼管理(三):常用操作
    11、SVN登錄方式與AD整合
    12、Subversion安裝手記
    13、Subversion安裝記錄  
    14、Subversion配置安裝教程(一)
    15、Apache和Subversion 搭建安全CVS
    16、SVN(Subversion)簡易入門教程

    CoderDream 2007-11-16 17:16 發表評論
    ]]>
    YouTobe、土豆網等資源下載http://www.tkk7.com/coderdream/archive/2007/11/16/160985.htmlCoderDreamCoderDreamFri, 16 Nov 2007 05:23:00 GMThttp://www.tkk7.com/coderdream/archive/2007/11/16/160985.htmlhttp://www.tkk7.com/coderdream/comments/160985.htmlhttp://www.tkk7.com/coderdream/archive/2007/11/16/160985.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/160985.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/160985.htmlhttp://www.downflv.com/


    CoderDream 2007-11-16 13:23 發表評論
    ]]>
    Java學習筆記--操作符“==”與對象的equal()方法 和 instanceof 操作符http://www.tkk7.com/coderdream/archive/2007/11/13/160258.htmlCoderDreamCoderDreamTue, 13 Nov 2007 09:14:00 GMThttp://www.tkk7.com/coderdream/archive/2007/11/13/160258.htmlhttp://www.tkk7.com/coderdream/comments/160258.htmlhttp://www.tkk7.com/coderdream/archive/2007/11/13/160258.html#Feedback0http://www.tkk7.com/coderdream/comments/commentRss/160258.htmlhttp://www.tkk7.com/coderdream/services/trackbacks/160258.html閱讀全文

    CoderDream 2007-11-13 17:14 發表評論
    ]]>
    主站蜘蛛池模板: 成人免费一区二区无码视频| 一色屋成人免费精品网站| 99精品免费观看| 我的小后妈韩剧在线看免费高清版| 久久精品免费一区二区喷潮| 又粗又黄又猛又爽大片免费| 日韩亚洲变态另类中文| 久久亚洲AV成人出白浆无码国产 | 国产亚洲精品观看91在线| 亚洲成a人不卡在线观看| 色窝窝亚洲av网| 花蝴蝶免费视频在线观看高清版| 57pao一国产成视频永久免费| 免费看的一级毛片| 亚洲一区二区三区香蕉| 亚洲精品成人久久| 香蕉视频免费在线播放| 久久免费观看国产精品88av| 狠狠久久永久免费观看| 亚洲人成人网站色www| 精品亚洲AV无码一区二区三区| 高潮毛片无遮挡高清免费视频| av永久免费网站在线观看 | 99re热精品视频国产免费| 又粗又大又黑又长的免费视频| 亚洲?v无码国产在丝袜线观看| 久久亚洲AV成人无码电影| 亚洲AV无码专区国产乱码不卡 | 免费av片在线观看网站| 女人张开腿给人桶免费视频 | 亚洲综合色婷婷七月丁香| 亚洲乱码一区av春药高潮| fc2免费人成在线视频| 午夜国产精品免费观看 | 亚洲AV一二三区成人影片| 久久久久女教师免费一区| 毛片视频免费观看| 国产亚洲一区二区精品| 亚洲av无码成人精品国产| 91av视频免费在线观看| 亚洲人成国产精品无码|