2010年9月11日

          有點亂,還需要整理

          1.常見OR框架:
          hibernate的3種狀態  ID生成策略

          2.helloword小程序

          clent—》app server -》strus—》action—》service—》DAO—》model—》DB

          3.面向接口編程

          4.把一個對象存到數據庫,怎么做呢?
          首先實例化對象,鏈接數據庫,通過sql語句將對象插入到數據庫。sql語句不是面向對象的語言。

          5.通過hibernate將對象插入到數據庫:
          可以通過幾個類打交道:Configuration、SessionFactory、Session(java里面的)、然后對象調用Session的save方法,就可以將對象插入到數據庫了。而不用通過sql語句,這種方式是面向對象的。sql語句已經被Hibernate取代了。把對象持久化到數據庫。


          6.學hibernate風格
            先脈絡,后細節
            先操作,后原理
            重Annotation,輕xml配置文件。


          Annotation又分兩種:JPA的Annotation 和 Hibernate-extention。前者是重點。


          添加.jar包,

          通常是:Build Path->Add External Archives 添加外部擴展.jar包,但是如果有多個.jar包同屬于一個項目,例如hibernate有多個.jar包,可以把hibernate的多個包放入一個包中,做法如下:Window->Preferences->java->Build Path->User Libraries(User自定義的librares),然后根據右側提示操作即可。

          Hibernate的包
          Hibernate的包在Hibernate的源文件的lib目錄下,其中lib目錄里面有bytecode、optional和required3個目錄,bytecode試試生成二進制字節碼所需要的.jar包,optional是可選的包,required是必須的包,我們選擇required下的包,全部引進我們的項目包。
          建立一個hibernate項目,除了hibernate的.jar包以外,還要與之對應版本的slf4j的.jar包,因為Hibernate的.jar包里面雖然有了slf4j-api-1.5.8.jar這個包,但是這個包只有api,但是并沒有具體的實現,還需要引入slf4j項目下的slf4j-nop-1.5.8.jar這個包,這個包定義了slf4j的具體實現。


          建立數據庫-》建立model類

          建立hibernate的配置文件

          ddl:數據定義語言,建表語句,hbm:hibernate mapping。hbm2ddl:是否自動生成建表語句。
          數據庫表名不區分大小寫。

          posted @ 2011-02-09 23:42 yansj1997 閱讀(412) | 評論 (0)編輯 收藏

          1.首先解決漢化問題
            如果從Adobe Dreamweaver CS5的官網上下載了一個Adobe Dreamweaver CS5,那么Adobe Dreamweaver CS5默認你是英文版的,我們中國人還是比較習慣看漢字的。我英文不好,還是看漢字比較習慣,雖然看Adobe Dreamweaver CS5的英文提示沒什么問題。
          要解決漢化問題其實很簡單,只要下載一個中文語言包放在Adobe Dreamweaver CS5的安裝目錄下,然后將英文的語言包改個名字或者干脆直接刪掉就可以了。
          2.jQuery API使用方法
          首先從網上下載一個jquery的api(我給提供了),解壓后把shared、Extensions、codehints三個文件夾復制到
          WinXP:C:\Documents and Settings\Administrator\Application Data\Adobe\Dreamweaver CS5\zh_CN\Configuration
          win7:C:\Users\Administrator\AppData\Roaming\Adobe\Dreamweaver CS5\zh_CN\Configuration
          重新啟動Adobe Dreamweaver CS5即可。我從網上查了些資料,說不用重新啟動Adobe Dreamweaver CS5,但是我這沒啟動前沒有效果,重新啟動了下就可以自動提示了。



          語言包太大了,傳不上來,可以到其他的網站下載。
          http://www.aygfsteel.com/Files/yansj1997/jqueryAPI.rar

          posted @ 2010-11-23 14:30 yansj1997 閱讀(276) | 評論 (0)編輯 收藏

          一個項目組有多個人進行開發一個項目,那么對項目的版本進行科學、合理的管理是每個Project Manager應該做好的一件事,其中版本控制常用的有CVS和SVN。但是近幾年來CVS有下降的趨勢,逐步被SVN取代。
          SVN一個最為重要的作用就是版本控制,除此之外還有許多功能。如過程管理,訪問權限的設定等等。SVN有服務器端和客戶端兩個文件,可以從http://tortoisesvn.net/downloads/ 和 http://subversion.apache.org/packages.html 選擇適合自己的版本下載。

          posted @ 2010-11-21 23:23 yansj1997 閱讀(173) | 評論 (0)編輯 收藏

          代碼要能運行;
          順著一條線讀進去;

          posted @ 2010-11-13 16:16 yansj1997 閱讀(159) | 評論 (0)編輯 收藏

          • NaN:不是數。當對不適當的數據進行數學運算時使用,例如字符串或未定義值;
          • 正無窮大:在javascript中如果一個正整數太大的時候使用;
          • 負無窮大:在javascript中如果一個負整數太大的時候使用;
          • 正0和負0:在javascript中區分正0和負0。

          posted @ 2010-10-12 10:53 yansj1997 閱讀(163) | 評論 (0)編輯 收藏

          要學習javascript,那么首先就要認識javascript。因為人們經常說的是js,簡稱,這是一個習慣的叫法,那么常說的js是javascript嗎?因為還有一種和javascript極為相似的語言——jscript。
          其實在這個問題上不用那么較真,我們首先了解一下javascript和jscript的來源,就很多問題不用說都明白了。
          javascript是一種由NetScape的LiveScript發展而來的原型化繼承的基于對象的動態類型的區分大小寫的客戶端腳本語言,主要目的是為了解決服務器端語言的遺留的速度問題,為客戶提供更流暢的瀏覽效果。為了迎接javascipt帶來的技術挑戰,Microsoft推出了jscript。javascript和jscript都遵循ECMA標準,兩者都屬于ECMAScript實現,兩者在功能上基本上都是一樣的,至于很細的細節不是一兩句話能說的清的,我也在學習中。
          我們在寫程序的時候一般都寫<script language="javascript"></script>而不是寫<script language="jscript"></script>,因為javascript是通用的名稱,所有的瀏覽器都可以識別,而jscript只有IE可以識別,其他的瀏覽器識別不了。
          那么現在我可以說了,js=javascript,而javascript和jscript在功能上的實現幾乎是相同的,至于有沒有什么不同,這需要我們在實踐中共同探索發現。

          posted @ 2010-10-11 22:39 yansj1997 閱讀(170) | 評論 (0)編輯 收藏

          java中的數據類型有基本數據類型和對象類型,相應的變量也有基本類型的變量和引用類型變量。基本的數據類型比較簡單,有8中,分別為:boolean、byte、char、short、int、float、double、long,這些基本的數據類型呢比較簡單,都很容易理解,它們都是一些普通的字符、數字,或者是一個表示真假的true or false,可是引用類型的值呢?引用類型的值是指向內存引用空間的引用,就是對應內存地址的一個引用,其所指向的內存中保存著變量所表示的一個或一組值。說白了,引用類型的值就是其變量所表示的指向內存空間地址的一個引用,值可能是一個,也可能是一組。

          posted @ 2010-09-19 23:47 yansj1997 閱讀(195) | 評論 (0)編輯 收藏

                  通過HTML的文件API ,Firefox、Chrome等瀏覽器已經支持從操作系統直接拖拽文件,并上傳到服務器。

                  相對于使用了十多年的HTML表單,這是一個革命性的進步。雖然IE的落后讓很多開發者還在觀望中,但是Gmail郵箱的附件拖拽功

          能已經給部分用戶帶來了極大的方便,而需要大量上傳文件的CMS(內容管理系統)也將會從中受益。

                  讓我們看一下Firefox 是如何使用拖拽上傳功能的:
                  首先提供一個區域來放置文件Html代碼
                  <div name="image" id="dropbox" style="min-width:300px;min-height:100px;border:3px dashed silver;"></div> 
                  然后監聽拖拽過程中的dragenter、dragleave、drop等事件
                  Js代碼

          document.addEventListener("dragenter", function(e){ dropbox.style.borderColor = 'gray';  }, false); 
          document.addEventListener("dragleave", function(e){ dropbox.style.borderColor = 'silver';  }, false); 
          dropbox.addEventListener("dragenter", function(e){dropbox.style.borderColor = 'gray';  dropbox.style.backgroundColor = 'white';  }, false); 
          dropbox.addEventListener("dragleave", function(e){ dropbox.style.backgroundColor = 'transparent';  }, false); 
          dropbox.addEventListener("dragenter", function(e){ e.stopPropagation();  e.preventDefault();  }, false); 
          dropbox.addEventListener("dragover", function(e){ e.stopPropagation(); e.preventDefault();  }, false); 
          dropbox.addEventListener("drop", function(e){e.stopPropagation(); e.preventDefault();  handleFiles(e.dataTransfer.files);  submit.disabled = false;}, false);
          其中最主要的是drop事件中用handleFiles()依次處理所有文件
          Js代碼
          handleFiles = function(files) {for (var i = 0; i < files.length; i++) { var file = files[i]; }}

          對于圖片類型的文件可以直接讀取內容,顯示預覽圖

          Js代碼
          if (!file.type.match(/image*/)) { continue; }  
          var img = document.createElement("img"); 
          img.classList.add("obj"); 
          img.file = file; 
          preview.appendChild(img);  
          var reader = new FileReader(); 
          reader.onload = (function(aImg) { return function(e) { aImg.src = e.target.result; }; })(img); 
          reader.readAsDataURL(file);

           接下來就是核心功能:ajax上傳。首先新建一個XHR請求

           js代碼
          var xhr = new XMLHttpRequest(); 
          xhr.open('post', '/file/upload', true);  

          監聽上傳進度和完成事件 
          Js代碼
          xhr.upload.addEventListener("progress", function(e) { 
              if (e.lengthComputable) { 
                  var percentage = Math.round((e.loaded * 100) / e.total); 
                  img.style.opacity = 1-percentage/100.0; 
              } 
          }, false); 
           
          xhr.upload.addEventListener("load", function(e){ 
               
          }, false);

          最后把數據模擬成multipart/form-data的格式上傳 

          Js代碼
          xhr.setRequestHeader("Content-Type", "multipart/form-data, boundary="+boundary); // simulate a file MIME POST request.  
          xhr.setRequestHeader("Content-Length", fileSize);   
          var body = ''; 
          body += "--" + boundary + "\r\n"; 
          body += "Content-Disposition: form-data; name=\""+dropbox.getAttribute('name')+"\"; filename=\"" + fileName +

          "\"\r\n"; 
          body += "Content-Type: "+fileType+"\r\n\r\n"; 
          body += fileData + "\r\n"; 
          body += "--" + boundary + "--\r\n"; 
           
          xhr.sendAsBinary(body);

          posted @ 2010-09-11 16:08 yansj1997 閱讀(2115) | 評論 (2)編輯 收藏


          posts - 8, comments - 2, trackbacks - 0, articles - 0

          Copyright © yansj1997

          主站蜘蛛池模板: 留坝县| 永昌县| 河津市| 莱阳市| 和田县| 青州市| 纳雍县| 定边县| 瑞昌市| 和平县| 信宜市| 耒阳市| 邓州市| 新干县| 利川市| 原阳县| 新津县| 安化县| 海安县| 扶余县| 鸡泽县| 昭觉县| 濮阳市| 沁水县| 宁南县| 沁阳市| 五寨县| 高要市| 永和县| 利津县| 都江堰市| 将乐县| 金沙县| 天气| 莱阳市| 蕲春县| 兴山县| 彭泽县| 进贤县| 宁安市| 射阳县|