2011年2月9日

          有點(diǎn)亂,還需要整理

          1.常見OR框架:
          hibernate的3種狀態(tài)  ID生成策略

          2.helloword小程序

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

          3.面向接口編程

          4.把一個(gè)對(duì)象存到數(shù)據(jù)庫,怎么做呢?
          首先實(shí)例化對(duì)象,鏈接數(shù)據(jù)庫,通過sql語句將對(duì)象插入到數(shù)據(jù)庫。sql語句不是面向?qū)ο蟮恼Z言。

          5.通過hibernate將對(duì)象插入到數(shù)據(jù)庫:
          可以通過幾個(gè)類打交道:Configuration、SessionFactory、Session(java里面的)、然后對(duì)象調(diào)用Session的save方法,就可以將對(duì)象插入到數(shù)據(jù)庫了。而不用通過sql語句,這種方式是面向?qū)ο蟮摹ql語句已經(jīng)被Hibernate取代了。把對(duì)象持久化到數(shù)據(jù)庫。


          6.學(xué)hibernate風(fēng)格
            先脈絡(luò),后細(xì)節(jié)
            先操作,后原理
            重Annotation,輕xml配置文件。


          Annotation又分兩種:JPA的Annotation 和 Hibernate-extention。前者是重點(diǎn)。


          添加.jar包,

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

          Hibernate的包
          Hibernate的包在Hibernate的源文件的lib目錄下,其中l(wèi)ib目錄里面有bytecode、optional和required3個(gè)目錄,bytecode試試生成二進(jìn)制字節(jié)碼所需要的.jar包,optional是可選的包,required是必須的包,我們選擇required下的包,全部引進(jìn)我們的項(xiàng)目包。
          建立一個(gè)hibernate項(xiàng)目,除了hibernate的.jar包以外,還要與之對(duì)應(yīng)版本的slf4j的.jar包,因?yàn)镠ibernate的.jar包里面雖然有了slf4j-api-1.5.8.jar這個(gè)包,但是這個(gè)包只有api,但是并沒有具體的實(shí)現(xiàn),還需要引入slf4j項(xiàng)目下的slf4j-nop-1.5.8.jar這個(gè)包,這個(gè)包定義了slf4j的具體實(shí)現(xiàn)。


          建立數(shù)據(jù)庫-》建立model類

          建立hibernate的配置文件

          ddl:數(shù)據(jù)定義語言,建表語句,hbm:hibernate mapping。hbm2ddl:是否自動(dòng)生成建表語句。
          數(shù)據(jù)庫表名不區(qū)分大小寫。

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


          2010年11月23日

          1.首先解決漢化問題
            如果從Adobe Dreamweaver CS5的官網(wǎng)上下載了一個(gè)Adobe Dreamweaver CS5,那么Adobe Dreamweaver CS5默認(rèn)你是英文版的,我們中國(guó)人還是比較習(xí)慣看漢字的。我英文不好,還是看漢字比較習(xí)慣,雖然看Adobe Dreamweaver CS5的英文提示沒什么問題。
          要解決漢化問題其實(shí)很簡(jiǎn)單,只要下載一個(gè)中文語言包放在Adobe Dreamweaver CS5的安裝目錄下,然后將英文的語言包改個(gè)名字或者干脆直接刪掉就可以了。
          2.jQuery API使用方法
          首先從網(wǎng)上下載一個(gè)jquery的api(我給提供了),解壓后把shared、Extensions、codehints三個(gè)文件夾復(fù)制到
          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
          重新啟動(dòng)Adobe Dreamweaver CS5即可。我從網(wǎng)上查了些資料,說不用重新啟動(dòng)Adobe Dreamweaver CS5,但是我這沒啟動(dòng)前沒有效果,重新啟動(dòng)了下就可以自動(dòng)提示了。



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

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


          2010年11月21日

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

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


          2010年11月13日

          代碼要能運(yùn)行;
          順著一條線讀進(jìn)去;

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


          2010年10月12日

          • NaN:不是數(shù)。當(dāng)對(duì)不適當(dāng)?shù)臄?shù)據(jù)進(jìn)行數(shù)學(xué)運(yùn)算時(shí)使用,例如字符串或未定義值;
          • 正無窮大:在javascript中如果一個(gè)正整數(shù)太大的時(shí)候使用;
          • 負(fù)無窮大:在javascript中如果一個(gè)負(fù)整數(shù)太大的時(shí)候使用;
          • 正0和負(fù)0:在javascript中區(qū)分正0和負(fù)0。

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


          2010年10月11日

          要學(xué)習(xí)javascript,那么首先就要認(rèn)識(shí)javascript。因?yàn)槿藗兘?jīng)常說的是js,簡(jiǎn)稱,這是一個(gè)習(xí)慣的叫法,那么常說的js是javascript嗎?因?yàn)檫€有一種和javascript極為相似的語言——jscript。
          其實(shí)在這個(gè)問題上不用那么較真,我們首先了解一下javascript和jscript的來源,就很多問題不用說都明白了。
          javascript是一種由NetScape的LiveScript發(fā)展而來的原型化繼承的基于對(duì)象的動(dòng)態(tài)類型的區(qū)分大小寫的客戶端腳本語言,主要目的是為了解決服務(wù)器端語言的遺留的速度問題,為客戶提供更流暢的瀏覽效果。為了迎接javascipt帶來的技術(shù)挑戰(zhàn),Microsoft推出了jscript。javascript和jscript都遵循ECMA標(biāo)準(zhǔn),兩者都屬于ECMAScript實(shí)現(xiàn),兩者在功能上基本上都是一樣的,至于很細(xì)的細(xì)節(jié)不是一兩句話能說的清的,我也在學(xué)習(xí)中。
          我們?cè)趯懗绦虻臅r(shí)候一般都寫<script language="javascript"></script>而不是寫<script language="jscript"></script>,因?yàn)閖avascript是通用的名稱,所有的瀏覽器都可以識(shí)別,而jscript只有IE可以識(shí)別,其他的瀏覽器識(shí)別不了。
          那么現(xiàn)在我可以說了,js=javascript,而javascript和jscript在功能上的實(shí)現(xiàn)幾乎是相同的,至于有沒有什么不同,這需要我們?cè)趯?shí)踐中共同探索發(fā)現(xiàn)。

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


          2010年9月19日

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

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


          2010年9月11日

                  通過HTML的文件API ,F(xiàn)irefox、Chrome等瀏覽器已經(jīng)支持從操作系統(tǒng)直接拖拽文件,并上傳到服務(wù)器。

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

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

                  讓我們看一下Firefox 是如何使用拖拽上傳功能的:
                  首先提供一個(gè)區(qū)域來放置文件Html代碼
                  <div name="image" id="dropbox" style="min-width:300px;min-height:100px;border:3px dashed silver;"></div> 
                  然后監(jiān)聽拖拽過程中的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]; }}

          對(duì)于圖片類型的文件可以直接讀取內(nèi)容,顯示預(yù)覽圖

          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上傳。首先新建一個(gè)XHR請(qǐng)求

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

          監(jiān)聽上傳進(jìn)度和完成事件 
          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);

          最后把數(shù)據(jù)模擬成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 閱讀(2116) | 評(píng)論 (2)編輯 收藏


          僅列出標(biāo)題  

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

          Copyright © yansj1997

          主站蜘蛛池模板: 绥化市| 缙云县| 日照市| 延吉市| 宿松县| 米泉市| 定陶县| 锡林浩特市| 禄劝| 宁都县| 隆安县| 石家庄市| 芜湖县| 伊川县| 松潘县| 上虞市| 鱼台县| 宜良县| 赫章县| 社旗县| 樟树市| 长海县| 正定县| 哈巴河县| 耿马| 麦盖提县| 松潘县| 原阳县| 和静县| 周口市| 平陆县| 枝江市| 香格里拉县| 江陵县| 梓潼县| 方山县| 信丰县| 商丘市| 赤壁市| 浦北县| 南溪县|