1. 前幾天在水木上看到有人問
          class Demo>E<{
          public Class getDynamicClass(){
          Class clazz=//----------------------如何獲取E的類?
          return clazz;
          }
          }
          貌似只能這樣解決
          class Demo>E<{
          E e;
          public void addElement(E e){
          this.e = e;
          }
          public Class getDynamicClass(){
          Class clazz = e.getClass();
          return clazz;
          }
          }
          一些相關評論
          Java的范型就是半個殘廢
          nod,Java的范型除了防止類型轉換錯誤以外我真想不起來有什么實質的用途。
          尤其是那個文檔中說的,編譯的時候拿掉,運行的時候再檢查...
          確實沒什么用,jg老糊涂了偏要聽信c++那個bs老頭才有這個敗筆,我一直這么認為
          這個東西歐n年前就沒有搞出來
          還是有點用的,在ORM中定義多對一或者多對多關系的時候,
          List>C< numbers;
          這時候偶就知道numbers關聯的是C類,不需要在其它地方再配置了,
          為啥沒用
          否則對容器的使用還得停留在指針時代
          C#的泛型性能還是很好的,只是Java的實現機制那啥了點。。。
          最后有人回
          很多事情,不要著急下結論。以下代碼算轉載,不算原創。

          -------------華麗的分割線---------------------------------
          protected Class getDomainClass() {
          if (domainClass == null) {
          ParameterizedType thisType = (ParameterizedType)
          getClass().getGenericSuperclass();
          domainClass = (Class)
          thisType.getActualTypeArguments()[0];
          }
          return domainClass;
          }
          -------------華麗的分割線---------------------------------
          還沒試過可不可以
          2. 另外一個類似的帖子的回復
          System.out.println(((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]);
          試驗了半天
          public class BaseClass>M<{
          public void showType(){
          ParameterizedType ptype = (ParameterizedType) getClass()
          .getGenericSuperclass();
          System.out.println(ptype.getActualTypeArguments()[0]);
          }
          }
          public class ExClass>M< extends BaseClass>M<{}

          new ExClass>Date<().showType(); //得到 "M" 而不是想要的 "Date" :'(

          我以前也想這么搞,可是沒搞成,后來看Java關于泛型的實現,認為沒希望。
          前面所說的方式只有在
          public class SomeClass extends BaseClass>AnotherClass< {...}
          這樣定義的時候才能取到AnotherClass ...
          3. 看到另一個帖子說運行期沒有范型

          posted @ 2007-04-22 20:26 ZelluX 閱讀(541) | 評論 (0)編輯 收藏

          2007-04-20 20:49:48
          lab內容比較簡單,一個注冊頁面,一個登錄界面,一個Users類用于臨時存儲已經注冊用戶。想想用jsp/servlet做也沒什么進步,直接用struts好了。
          下次lab會不會是數據庫入門呢?hibernate解決咯
          再次感嘆MyEclipse的方便。
          這幾天hibernate struts都有了一定的了解,關鍵是配置方面有一定的經驗了,可以深入學習,另外junit log4j貌似也要看一下的,然后還有物理考試、核心課討論、英語考試,五一節后又要交一堆論文,殘念。。。
          一些積累:
          1. ActionError(String, String)的構造器中第二個參數是uri,定位到ApplicationResources.properties問題,而不是錯誤提示。
          另外.properties文件的字符庫如何改成GBK還是個問題。
          2. Action中return mapping.findForward("blahblah")前還是要把內容存儲在request或者其他域中的,formbean并不會自動伴隨mapping.findForward提交到相關頁面。

          posted @ 2007-04-22 20:26 ZelluX 閱讀(433) | 評論 (0)編輯 收藏

          2007-04-20 12:20:26
          試著寫了個簡單的程序,往數據庫添加一條記錄而已。沒想到Hibernate就一直配不好,忙了一晚上 -,-
          最后發現是MyEclipse自動寫好hibernate.cfg.xml后,生成了HibernateSessionFactory類,創建session的時候只要
          HibernateSessionFactory.getSession()
          就行了不需要
          Configuration config = new Configuration(); ...
          后面那個方法是針對hibernate.properties的,哎,太土了。

          posted @ 2007-04-22 20:26 ZelluX 閱讀(363) | 評論 (0)編輯 收藏

          僅列出標題
          共39頁: First 上一頁 27 28 29 30 31 32 33 34 35 下一頁 Last 
          posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          相冊

          搜索

          •  

          積分與排名

          • 積分 - 337575
          • 排名 - 166

          最新評論

          貌似對一般函數都有用

          ------------------------

          發信人: MeteorX (Mizuho的大mj), 信區: Java
          標  題: Re: 請教繪制ax^2+bx+c函數圖象的方法
          發信站: 日月光華 (2007年04月27日15:15:59 星期五), 站內信件

          1階導為f'(x), f'(x1)=1, f'(x2)=-1
          [x1, x2]或者[x2, x1]內按x軸逐點掃描,其余按y軸逐點掃描

          【 在 nth (nothing) 的大作中提到: 】
          : 如題
          : --
          : j2se中有現成的類么?
          : ※ 來源:·日月光華 bbs.fudan.edu.cn·HTTP [FROM: 121.248.20.51]
          : ※ 修改:·nth 於 04月27日15:13:16 修改本文·HTTP [FROM: 121.248.20.51]
          --
          ※ 來源:·日月光華 bbs.fudan.edu.cn·[FROM: 10.85.11.165]

          posted @ 2007-04-27 16:19 ZelluX 閱讀(2656) | 評論 (4)編輯 收藏

          發信人: anchorzhao (anchor), 信區: Algorithm
          標  題: 請教騰訊筆試題
          發信站: 飲水思源 (2007年04月23日13:01:40 星期一)

          只有2G內存的pc機,在一個存有10G個整數的文件,從中找到中位數,寫一個算法。
          --

          ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 202.120.37.193]


          發信人: xreborner (xreborner), 信區: Algorithm
          標  題: Re: 請教騰訊筆試題
          發信站: 飲水思源 (2007年04月24日11:23:07 星期二), 轉信

          ……
          一個整數假設是32位無符號數
          第一次掃描把0~2^32-1分成2^16個區間,記錄每個區間的整數數目
          找出中位數具體所在區間65536*i~65536*(i+1)-1
          第二次掃描則可找出具體中位數數值

          【 在 howe (無痕) 的大作中提到: 】
          : 這小子吹牛
          : 【 在 acmboy (雪狼,想創業,人不霸王枉少年) 的大作中提到: 】
          : : 這小子夠壞的,居然不說怎么做~~~


          --
          心碼合一,心中有代碼,碼中存我心;維碼無心,心動即碼動,代碼表我心;
          維心無碼,視萬物皆空,知萬千變化;無碼無心,行如若無規,動全依所意。

          ※ 來源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 202.120.224.18]

          發信人: xreborner (xreborner), 信區: Algorithm
          標  題: Re: 請教騰訊筆試題
          發信站: 飲水思源 (2007年04月24日18:37:01 星期二), 轉信

          可以保證的
          因為第一次掃描已經找出中位數具體所在區間65536*i~65536*(i+1)-1
          然后第二次掃描再統計在該區間內每個數出現的次數
          就可以了
          實在是太簡單了

          【 在 acmboy (雪狼,想創業,人不霸王枉少年) 的大作中提到: 】
          : anyway,good solution ,雖然不能保證兩次完成
          : 【 在 acmboy (雪狼,想創業,人不霸王枉少年) 的大作中提到: 】
          : : 如果int[] 是不重復的話可以的,
          : : 如果在中位數附近重復的比較厲害的話,呵呵

          posted @ 2007-04-26 12:37 ZelluX 閱讀(4537) | 評論 (3)編輯 收藏

          1. web.xml
          聲明ActionServlet
          <servlet>
            <servlet-name>action</servlet-name>
            <servlet-class>org.apache.action.ActionServlet</servlet-class>
          </servlet>

          把所有的.do映射到ActionServlet中
          <servlet-mapping>
            <servlet-name>action</servlet-name>
            <url-pattern>*.do</url-pattern>
          </servlet-mapping>

          ActionServlet初始化參數
          <servlet>
            <servlet-name>action</servlet-name>
            <servlet-class>org.apache.action.ActionServlet</servlet-class>
            <init-param>
              <param-name>config</param-name>
              <param-value>/WEB-INF/struts-config.xml</param-value>
            </init-param>
          </servlet>

          歡迎文件清單
          <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
          </welcome-file-list>
          在struts配置文件中增加
          <global-forwards>
            <forward name="welcome" path="HelloWorld.do" />
          </global-forwards>
          然后增加welcome.jsp,使用標簽
          <logic:forward name="welcome" />
          轉向歡迎頁面

          配置Struts標簽庫
          略了

          2. org.apache.struts.config 包
          JavaResearch.org 暫時進不去,所以看不到具體的struts.config包的源碼
          主要包含了ModuleConfig接口,和ModuleConfigImpl類,以及繼承它們的
          ControllerConfig, ActionConfig, ActionMapping, ActionForward, ForwardConfig...等類
          注意其中的某些一對多關系

          在Struts啟動室,會把配置信息讀入內存中,并存放在config包中相關的JavaBean類的實例中。

          今天先看到這,復習物理去了,恩

          posted @ 2007-04-25 20:40 ZelluX 閱讀(430) | 評論 (0)編輯 收藏

          盡管是兩星期前完成的,不過還是養成好習慣,寫下心得吧
          1. 工具方面,Firebug真不錯,大大提高了開發速度。IE的Developer Toolbar界面倒不錯,不過好像穩定性不高,經常crash。
          2. 在用js判斷用戶注冊時,遇到驗證成功后再次驗證就會失敗的問題。原因在于開啟了正則表達式global選項,在第一次匹配后,檢測指針會指向最后一個換行符,于是第二次檢測就會失敗。
          3. CSS的級聯特性很方便,只要把body的className屬性改掉后,所有的級聯子節點都會相應地改變樣式,不像swing中需要一堆repaint()  -,-
          4. 要通過js修改網頁的某處文字,一開始我通過修改someNode.firstChild.nodeValue,后來發現有textContent和innerHTML屬性。不過貌似前者在IE中會出現問題,而后者IE和Firefox下表現也不完全一樣,需要小改動。
          4. js中可以很方便的動態創建網頁標簽,好像是createElement(elementType)方法(Project2的代碼手頭沒有,只能憑記憶了),然后設置下newNode的屬性,再通過父節點的addChild方法加入就行了。注意newNode的parentNode是只讀的。
          5. js訪問cookie也不難,從一本電子書上復制粘貼了getCookie和setCookie兩個方法,可以很方便地對cookie進行操作。

          EyesOnMe.txt
          完成模塊:
          1. 用戶登錄與注銷
             1) FF下需允許JavaScript修改狀態欄
             2) FF下還有個小bug,舉例說明:
                輸入test@aaa.com,登錄成功
                修改文本框中的字符,比如修改成test@aa.com,再次登錄,提示登錄失敗,此時根據要求文本框內容清空
                再次輸入test@aa.com,登錄成功
                有點詭異,不過要防止這個bug只要在登錄后把onsubmit功能取消掉就行了。IE6下沒有這個問題。

          2. 用戶注冊
          3. 界面模塊
          4. 選做1:實現組件在頁面內的自由拖放
          5. 飛行游戲模塊 及 選做2
            “增加星星”功能可以在運行時動態生成星星。

            1) 在實現多個星星的控制的時候我使用了一個spacestar數組,發現訪問該數組成員時,不能使用for each循環
               如果使用
               for (star in spacestar) {...}
               這樣star只會是一個字符串,并不是指向各元素的句柄。
               但是使用
               for (i = 0; i<spacestar.length; i++) {...}
               然后通過spacestar[i]來訪問,可以得到各元素的句柄。
           
            2) 新創建的星星div會自動排在原來div的后面,因此在設置top屬性的時候作了相關修正:
               starY = Math.round(Math.random() * 130) - i * 30;
               不過好像星星一多還是會有越界的現象發生,IE6下更為嚴重。
           
            3) 一開始發現IE6不支持飛行游戲模塊,以為是IE6不支持createElement方法,后來才發現原來是某兩個語句后面少打了分號,FF自動修復

          了,IE6沒修復,就無法執行了,如果瀏覽器腳本語言支持Python就好了 =_

          6. 必做組件:便箋簿
             覺得做為桌面Widget還是便箋比較有用,使用了cookie保存便箋內容,并支持動態生成、創建便箋的功能。
             自認這個組件創意不咋的,不過技術含量還是挺高的 ^_^

          7. 代碼風格

          思考:
          1. 我覺得跨瀏覽器關鍵靠經驗,剛開始學得每寫一點代碼就在不同瀏覽器中調試下,某些功能針對不同的瀏覽器使用不同的js方法。
             1) 在便箋簿模塊中,生成新的<a>便簽的時候,鏈接文字使用
                oNoteSetter.contentText = " 讀取";
                在FF下正常,在IE6下無效;后來google了下,改用
                oNoteSetter.innerHTML="&nbsp;讀取";
                后FF和IE6下均通過。

          2. 做這個project之前,我也不知道JavaScript居然有那么強大的功能,翻了Professional JavaScript for Web Developers和Making Use of

          Javascript才知道原來可以動態生成元素、修改cookie。CSS的級聯特性也很不錯,要是用Java的Swing組件估計要痛苦地repaint()了。

          posted @ 2007-04-25 18:25 ZelluX 閱讀(563) | 評論 (0)編輯 收藏

          Jakarta Commons FileUpload 用戶指南

          本文是分享文檔站長胡蘿卜的作品。大家可以自由閱讀、在網絡上進行分發,前提是必須保留本文檔的完整性。
          分享文檔是一家專業的Java技術網站,給中國Java 程序員提供各種Java資源如文檔,工具,教程,社區交流等。
          我們的官方網站是:http://chinesedocument.com
          我們的官方論壇是:http://bbs.chinesedocument.com
          請大家多多關注分享文檔,我們還會發布更多優秀的文檔!

          第1章 使用FileUpload
          FileUpload能以多種方式使用,這取決于你的應用需求。舉個簡單的例子,你可能調用一個單獨的方法來解析servelt的請求,并且處理那些項目。 從另一個方面來講,你可能想自定義FileUpload來完全控制個別項目的存貯;例如,你想流化那些內容,并存到數據庫里去。
          這里我們會介紹使用FileUpload的基礎原則,并描述一些簡單的通用的使用模式。我們會在在其它地方介紹關于FileUpload的自定義。
          FileUpload依賴于一些公用的IO,因此,要確保在你繼續之前,你的classpath里已經有依賴頁面里提起的那些版本。


          第2章 FileUpload如何工作?
          一個上傳請求由一系列根據RFC1867("Form-based File Upload in HTML".)編碼的項目列表組成。FileUpload可以解析這樣的請求,并為你的應用提供那些已上傳的項目的列表。每一個這樣的項目都實現了FielItem接口,我們不用管它們的底層實現。
          這個頁面描述了commons fileupload庫的常用API。這些常用API是非常方便的途徑。然而,為了最好的性能,你可能更喜歡最快的Streaming API 。
          每一個文件項目有一些自己的屬性,這些屬性也許正是你的應用程序感興趣的地方。例如,每個項目有個一個名字和內容類型,并且可以提供一個輸入流來訪問它們的數據。另一方面來看,你可能需要用不同方式來處理不同的項目,這就依賴于那些項目是否是一個正常的表單字域,也就是說,這些數據來自于一個普通的文本框或類似HTML的字域,還是一個要上傳文件字段。FileItem接口提供一些方法來做這樣一個決定,并且用最合適的方法訪問這些數據。
          FileUpload使用FileItemFactory創建一個新的文件項目。這將會給FileUpload最好的靈活性。工廠最終控制每個項目如何被創建。默認的工廠在內存或者硬盤里存儲項目的數據,這依賴于項目的大小(例如,有多少字節的數據。)。不過,為了適用于你的應用,你還是可以自定義這種行為的。


          第3章 servlets and portlets
          從V1.1版開始,FileUpload就開始支持servlet和portlet的文件上傳請求。這兩種環境的用法基本上差不多,因此,文檔的剩下部分都將是在servlet環境里。
          如果你正在構建一個portet應用,那么下面兩個差別是你在讀文檔時應注意的:
          你在哪里引用了ServletFileUpload類,就用PortletFileUpload類來替代它。
          你在哪里引用了HttpServletRequest類,就用ActionRequest類替代它。


          第4章 解析請求
          在你同那些上傳的項目一起工作前,你需要先解析請求本身。以確保這個請求確實是一個文件上傳請求。FileUpload是通過調用一個靜態方法來實現的。
          // Check that we have a file upload request
          boolean isMultipart = ServletFileUpload.isMultipartContent(request);
          現在,我們已經準備好解析請求里的項目了。

          4.1 最簡單的例子
          下面是一些簡單的使用場景:
          ??   上傳項目只要足夠小,就應該保留在內存里。
          ??   較大的項目應該被寫在硬盤的臨時文件上。
          ??   非常大的上傳請求應該避免。
          ??   限制項目在內存中所占的空間,限制最大的上傳請求,并且設定臨時文件的位置。
          處理這個場景的請求很簡單:
          // Create a factory for disk-based file items
          FileItemFactory factory = new DiskFileItemFactory();
          // Create a new file upload handler
          ServletFileUpload upload = new ServletFileUpload(factory);
          // Parse the request
          List /* FileItem */ items = upload.parseRequest(request);
          這就是我們所需要的全部代碼了!
          解析的結果就是一個項目的List,每個項目都實現了FileItem接口。我們將在下面討論如何處理這些項目。
          4.2 訓練如何控制
          如果你的使用場景和上面那個簡單的例子很接近,但是你又需要一點點控制,那么你可以很容易地定義upload處理器或者文件項目工廠的行為。下面這個例子顯示了幾個配置選項。
          // Create a factory for disk-based file items
          DiskFileItemFactory factory = new DiskFileItemFactory();
          // Set factory constraints
          factory.setSizeThreshold(yourMaxMemorySize);
          factory.setRepository(yourTempDirectory);
          // Create a new file upload handler
          ServletFileUpload upload = new ServletFileUpload(factory);
          // Set overall request size constraint
          upload.setSizeMax(yourMaxRequestSize);
          // Parse the request
          List /* FileItem */ items = upload.parseRequest(request);
          當然,每個配置方法是獨立于其它任意一個的。但是如果你想一次性配置他們,你可以用parseRequest()的另一個重載方法,像這樣:
          // Create a factory for disk-based file items
          DiskFileItemFactory factory = new DiskFileItemFactory(
          yourMaxMemorySize, yourTempDirectory);
          如果你還想使用更多的控制,比如存儲項目到其它地方(如,數據庫),那么你可以看FileUpload自定義介紹。


          第5章 處理上傳的項目
          一旦解析完成,那么你會得到一個待處理的文件項目列表。很多的情況下,你會想用不同的方式來處理文件上傳域和正常的表單域,因此,你可以這樣做:
          // Process the uploaded items
          Iterator iter = items.iterator();
          while (iter.hasNext()) {
            FileItem item = (FileItem) iter.next();
            if (item.isFormField()) {
              processFormField(item);
            } else {
              processUploadedFile(item);
            }
          }
          對于普通的表單域來說,你可能對項目的名稱和字符型值 很感興趣。就像你希望的那樣,照下面的做:
          // Process a regular form field
          if (item.isFormField()) {
            String name = item.getFieldName();
            String value = item.getString();
            ...
          }
          對于上傳文件,這里就有很多不同啦~你可能想知道更多其它的內容。下面是個例子,里面包含了不少你感興趣的方法。
          // Process a file upload
          if (!item.isFormField()) {
            String fieldName = item.getFieldName();
            String fileName = item.getName();
            String contentType = item.getContentType();
            boolean isInMemory = item.isInMemory();
            long sizeInBytes = item.getSize();
            ...
          }
          對于上傳的文件,你肯定不希望總是通過內存來訪問它,除非它很小,或者你實在沒有別的選擇余地了。你很希望使用流來處理文件內容或者將文件保存到它的最終位置。FileUpload提供簡單的方式來完成兩方面的需求。
          // Process a file upload
          if (writeToFile) {
            File uploadedFile = new File(...);
            item.write(uploadedFile);
          } else {
            InputStream uploadedStream = item.getInputStream();
            ...
            uploadedStream.close();
          }
          注意:在FileUpload的默認實現中wirte()方法應該值得關注,如果數據還在臨時文件里沒有移除,那么這個方法就會試圖重命名這個文件為相應的目標文件。事實上如果重命名失敗了的話,數據就僅僅被拷貝。
          如果你需要訪問內存中的上傳數據,你可以用get()方法來獲得數據的二進制數組形式。
          // Process a file upload in memory
          byte[] data = item.get();
          ...

          第6章 清除資源
          這一節只適用于你使用了DiskFileItem。換句話說,它只適用于你在處理上傳文件之前將上傳文件寫入過臨時文件這種情形。
          像這種臨時文件會被自動刪除, 如果它們不再被使用(更確切地說,java.io.File的實例已經被GC掉了。 )這是由org.apache.commons.io.FileCleaner類在后臺完成的,它會啟動一個收割機線程。
          這個收割機線程在它不再被需要時會被停止。在servlet環境里,這是通過指定一個名叫FileCleanerCleanup的servlet上下文監聽器來實現的。要做到這里,在你的web.xml增加下面的代碼:
          <web-app>
          ...
          <listener>
          <listener-class>
          org.apache.commons.fileupload.servlet.FileCleanerCleanup
          </listener-class>
          </listener>
          ...
          </web-app>
          不幸的是,事情到這里還沒完。如果你和下面的情況一樣,那么你就只需要按照上面的做,就可以清除資源了。
          你使用的是commons-io 1.3或者更晚的版本。
          你是從web應用的web-inf/lib里載入commons-io的,并不是從其它位置,如Tomcat的common/lib下。
          如果commons-io 1.3是從你的WEB容器的classpath里載入的,那么,下面的情況可能會出現:
          建議你運行兩個應用,一個叫A,一個叫B。(這兩個應用可能是完全一樣,只不過上下文名稱不一樣。)這兩個應用都使用了FileCleanerCleanup。現在,如果你終止應用A,B還在運行,這時,A會終止B的收割機線程。換言之,你要十分仔細地考慮是使用FileCleanerCleanup,還是不使用。

          第7章 觀察上傳進度
          如果你希望可以上傳很大的文件,這時,你可能想將上傳的狀態告訴用戶,如已經接收了多少。
          觀察上傳進度需要通過一個處理監聽器來實現。
          //Create a progress listener
          ProgressListener progressListener = new ProgressListener(){
            public void update(long pBytesRead, long pContentLength, int pItems) {
              System.out.println("We are currently reading item " + pItems);
              if (pContentLength == -1) {
                System.out.println("So far, " + pBytesRead + " bytes have been read.");
              } else {
                System.out.println("So far, " + pBytesRead + " of " + pContentLength
                + " bytes have been read.");
              }
            }
          };
          upload.setProgressListener(progressListener);
          上面這個監聽器是有問題的。因為它非常頻繁地被調用。這會帶來性能問題。一個比較好的解決辦法是,減少調用。例如,如果megabytes被改變,那么就發出一個消息。
          //Create a progress listener
          ProgressListener progressListener = new ProgressListener(){
            private long megaBytes = -1;
            public void update(long pBytesRead, long pContentLength, int pItems) {
              long mBytes = pBytesRead / 1000000;
              if (megaBytes == mBytes) {
                return;
              }
              megaBytes = mBytes;
              System.out.println("We are currently reading item " + pItems);
              if (pContentLength == -1) {
                System.out.println("So far, " + pBytesRead + " bytes have been read.");
              } else {
                System.out.println("So far, " + pBytesRead + " of " + pContentLength
                + " bytes have been read.");
              }
            }
          };

          posted @ 2007-04-23 19:56 ZelluX 閱讀(1527) | 評論 (1)編輯 收藏

          1. 單向一對多
          例如Order(一)映射Customer(多),在Order類中增加
          private Customer customer; 以及相關的getter setter
          在Order.hbm.xml中增加
          <many-to-one
            name="customer"
            column="CUSTOMER_ID"
            class="beans.Customer"
            cascade="sava-update"   //極聯保存和更新
            not-null="true"
          />

          2. 雙向一對多(多對多)
          在Customer類中增加
          private Set orders =  new HashSet(); 及setter getter
          注意這里的初始化可以防止在orders為空時的異常
          然后在Customer.hbm.xml中增加
          <set  name="orders"  cascade="sava-update">  //cacade="delete" 極聯刪除
            <key column="CUSTOMER_ID" />
            <one-to-many class="beans.Order" />
          </set>

          3. 自身映射
          其實就是把上面兩個結合了一下,但要注意變量命名,如
          parentCategory, childCategory

          posted @ 2007-04-23 16:52 ZelluX 閱讀(524) | 評論 (0)編輯 收藏

          www.maikr.com的博客伴侶這東東真不錯,把原來新浪博客的文章都搬來了,可惜日期分類都沒弄好,要自己一篇篇的改過來。
          以后學習方面的文章就放這了,恩。

          posted @ 2007-04-22 20:58 ZelluX 閱讀(189) | 評論 (1)編輯 收藏

          2007-04-21 11:12:29
          51La
          主站蜘蛛池模板: 旅游| 威远县| 安达市| 郯城县| 湘阴县| 扬州市| 江山市| 同德县| 鱼台县| 东阳市| 明溪县| 合水县| 望都县| 银川市| 宿松县| 武安市| 江都市| 新建县| 含山县| 卓资县| 肇州县| 云和县| 克东县| 多伦县| 基隆市| 黄陵县| 个旧市| 潍坊市| 体育| 凯里市| 遂平县| 阿城市| 共和县| 北票市| 察隅县| 二连浩特市| 宣武区| 交城县| 双辽市| 苏尼特右旗| 荆州市|