• P5

      win7下jdk1.8環境變量配置圖解詳細過程 文檔

    Java1.8環境變量配置1:下載對應版本的JDK1.8并安裝安裝過程中可以自定義安裝目錄等信息,例如我們選擇安裝目錄為:C:\ProgramFiles\Java\jdk1.8.02:安裝完成后,右擊“我的電腦”點擊“屬性”:3:單擊“高級系統設置”:4:在“系統變量”中,設置3項屬性,JAVA_HOME,PATH,CLASSPATH(大小寫無所謂),若已存在則點擊“編輯”,不存在則點擊“新建”:(1).JAVA_HOME指明JDK安裝路徑,就是剛才安裝時所選擇的路徑C:\ProgramFiles\Java\jdk1.8.0,如圖:(2)Path項下添加:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,注意前面用分號隔開,如圖:(3)在CLASSPATH項添加:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(要加.表示當前路徑),如圖:(5):“開始”->;“運行”,鍵入“cmd”,鍵入命令“javac”,出現以下畫面,說明環境變量配置成功。如圖:

    netfjfzlj 2016-03-14   4748   0
    P9

      存儲性能黑幕:蘋果和桔子怎么比較? 文檔

    存儲性能黑幕:蘋果和桔子怎么比較?  有沒有想過,廠商自己提供的存儲產品性能指標數據沒有任何意義?用戶要準確地評估不同廠商的存儲產品,還需仔細閱讀文中提到的SPC-1基準測試報告……前言  近年來,隨著存儲系統由服務器的附屬變成IT系統中獨立的子系統、由“外設”變成信息系統基礎架構的中心,用戶如何規劃、設計和挑選符合自己需求的存儲系統已變得越來越重要。  每個購買存儲系統的用戶都希望買到性能高、價格低、質量好(故障率低、可靠性高)、容量大(擴充能力強)、易于管理、售后服務好的存儲產品,其中大多數用戶最關心的還是存儲產品的前三項指標,即性能、價格和可靠性。具體如下:  ·體現存儲系統性能的最主要指標是IOPS(I/Ospersecond),即每秒輸入輸出次數;  ·存儲產品的價格需從二個方面進行評估,如果用戶對存儲的主要需求是存儲容量,則可由每GB存儲容量的價格比較各存儲廠商的產品;如果用戶對存儲的主要需求是存儲性能,則可由每IOPS的價格比較各存儲廠商的產品;  ·對于基于硬盤的存儲系統,其可靠性MTTF(平均故障出現時間)可表示為:  MTTFarray=MTTFdisk/存儲系統中的磁盤總數  其中:MTTFdisk代表每塊磁盤的平均故障出現時間,目前磁盤的MTTFdisk最高可達1,400,000小時。  在存儲系統的性能方面,很多存儲廠商都為其產品公布了漂亮的IOPS指標數據:IOPS達十幾萬甚至幾十萬;但這些廠商大都不公布測出該IOPS指標的存儲系統具體配置,因此用戶也就無法對該存儲產品的性價比和可靠性進行評估。很多用戶在實際使用這些存儲產品時卻發現這些有著漂亮IOPS數值的存儲產品性能很差,這是怎么回事?本文將為用戶破解這個謎團!一、此IOPS非彼IOPS,要真正了解存儲系統的性能還需看其SPC-1IOPS?  1、蘋果和桔子怎么比較?沒有統一的測試標準、環境和參數,IOPS就沒有可比性  這是因為IOPS測試結果與很多測試參數有關,如果各個存儲廠商都按自己的標準對存儲系統進行測試,那么測試出的IOPS等指標就沒有任何意義,原因如下:  1)隨機(Random)讀寫的IOPS與順序(Sequential)讀寫的IOPS大不一樣:對于基于磁盤的存儲系統,順序讀寫的IOPS要遠遠大于隨機讀寫的IOPS,其中100%順序讀的IOPS又大于100%順序寫的IOPS、100%隨機讀的IOPS又大于100%隨機寫的IOPS。下面的圖表是某品牌磁盤陣列(配置12塊Maxtor250GB,7,200RPM的磁盤,512MBCache)的不同IOPS,就清楚地說明了這種情況:INCLUDEPICTURE"http://searchstorage.techtarget.com.cn/imagelist/05/08/kj80eeqv459z.jpg"\*MERGEFORMATINETINCLUDEPICTURE"http://searchstorage.techtarget.com.cn/imagelist/05/08/618l94347fny.jpg"\*MERGEFORMATINETINCLUDEPICTURE"http://searchstorage.techtarget.com.cn/imagelist/05/08/xo9sjbp5zr80.jpg"\*MERGEFORMATINETINCLUDEPICTURE"http://searchstorage.techtarget.com.cn/imagelist/05/08/g2rgut02207k.jpg"\*MERGEFORMATINETINCLUDEPICTURE"http://searchstorage.techtarget.com.cn/imagelist/05/08/7ou756e3cw60.jpg"\*MERGEFORMATINET  2)從上面的圖表可以看出:無論是順序還是隨機讀寫IOPS測試,傳輸數據塊尺寸越小,IOPS值越大。  3)對于基于磁盤的存儲系統,在其它測試條件一樣的情況下,磁盤數量越多,IOPS值越大(幾乎呈線性增長)。具體見下表:INCLUDEPICTURE"http://searchstorage.techtarget.com.cn/imagelist/05/08/sf1y09lvf489.jpg"\*MERGEFORMATINET  4)在其它測試參數和條件一樣的情況下,RAID-10配置的IOPS要大于RAID-5配置的IOPS。具體見下表與上表的比較:INCLUDEPICTURE"http://searchstorage.techtarget.com.cn/imagelist/05/08/d6

    hczhang 2016-03-14   475   0
    P8

      git簡介使用 文檔

    第一步:安裝插件:git:http://download.eclipse.org/egit/updates-1.3第二步:將密匙文件放入,如圖所示:如圖加入密匙文件:yiping.wang注意,如果沒有這個.ssh文件的話,自己創建,創建如圖:第三步:使用gradle的步驟:先使用gitcheckout項目Next下去哈檢出項目如圖:第四步安裝:Gradle安裝地址為下載地址:http://services.gradle.org/distributions/gradle-1.5-all.zip安裝:解壓到自定義目錄(例如:C:\gradle-1.5)設置環境變量注意,這里的環境變量都配置到用戶名里,不要配置到系統里,否則掛的可能性很大GRADLE_HOME=C:\gradle-1.5Path+=%GRADLE_HOME%\bin打開命令行輸入:gradle,顯示以下類似信息即表示安裝成功命令:找到項目的地址,在docs命令下的改項目名下,編譯編譯命令:gradlecleaneclipseeclipse-Pprofile=test--------------------有針對性的編譯編譯命令:gradlecleaneclipseeclipse-----------------------全部編譯自動編譯:運行這個也可以的哈(以上選其一就ok了)后面的可以暫時不考慮哈打包命令:gradlecleanwar-Pprofile=product一些常用命令:-b指定build文件(默認為:build.gradle)-c指定settings文件(默認為:settings.gradle)-x排除指定任務(例如:-xtest)更多常用命令請輸入gradle-h/help查看Import項目ok有時候導入項目的時候會有一些bug出現,這個時候需要查看一下這個里面是否有依賴關系這個是依賴的項目名導入依賴的項目名就ok了打包命令:gradlecleanwar-Pprofile=product一些常用命令:-b指定build文件(默認為:build.gradle)-c指定settings文件(默認為:settings.gradle)-x排除指定任務(例如:-xtest)更多常用命令請輸入gradle-h/help查看

    setmsky 2016-03-14   567   0
    P9

      tomcat的下載、安裝與配置 文檔

    Tomcat的下載、安裝與配置1、安裝Tomcat前要先安裝JDK2、下載TomcatTomcat官網:HYPERLINK"http://tomcat.apache.org/"http://tomcat.apache.org/對于Windows操作系統,tomcat提供了兩種安裝文件,一個文件exe格式,另一個文件為zip格式。exe是可運行的安裝程序,讀者只需要雙擊這個文件,即可開始安裝Tomcat。在安裝過程中,安裝程序會自動搜尋JDK和JRE的位置,并把Tomcat服務加入到Windows操作系統的服務中,同時在“開始”→“程序”菜單中加入Tomcat服務器管理菜單。zip是一個壓縮包,只需要把它解壓到本地硬盤即可,這種方式既適合Windows系統下的安裝,也適用于其他操作系統,例如Linux系統,所以下面主要介紹zip的安裝與Tomcat運行環境的設置。3、ZIP格式Tomcat安裝文件的安裝及設置A、Tomcat安裝文件的安裝及設置把Tomcat壓縮文件apache-tomcat-8.0.3-windows-x64.zip中的內容解壓縮到D:\DevTools\apache-tomcat-8.0.3下,然后增加系統變量:變量名:TOMCAT_HOME;變量值:D:\DevTools\apache-tomcat-8.0.3。然后修改系統變量classpath,添加%TOMCAT_HOME%\lib\servlet-api.jar;同時修改系統變量path,添加%TOMCAT_HOME%\bin。B、測試Tomcat要測試Tomcat服務器是否安裝成功,首先要啟動Tomcat服務器。在Tomcat安裝目錄D:\DevTools\apache-tomcat-8.0.3下面有一個bin目錄,里面有兩個文件:startup.bat和shutdown.bat,分別控制Tomcat的啟動和關閉。由于在前一節中已經把該目錄加入到系統變量Path中,所以在命令行中直接輸入對應的文件名即可實現Tomcat的啟動和關閉,而不需要切換目錄。在命令行中輸入startup.bat,即可啟動Tomcat,如圖所示:然后在瀏覽器地址欄中輸入http://localhost:8080或者http://127.0.1.1:8080后,按Enter鍵訪問。如果出現如下圖界面,則說明Tomcat安裝成功。C、Tomcat常用配置文件在Tomcat目錄中,比較重要的配置文件有\conf下的tomcat-users.xml、server.xml以及\webapps中應用程序目錄下的web.xml。Tomcat采用基于角色的訪問控制模型管理用戶對系統的使用,安全性比較高,其角色和對應用戶都保存在tomcat-users.xml中。Tomcat服務器是由一些可配置的組件構成,在server.xml文件中可以對這些組件進行配置,每個Tomcat組件和server.xml文件是一一對應的。web.xml是按照Servlet規范定義的Web應用發布描述符文件,是完全獨立于Tomcat容器的Web應用配置文件。下面是一個tomcat-users.xml文件的內容:<?xmlversion='1.0'encoding='utf-8'?><tomcat-users>?<rolerolename="tomcat"/>?<rolerolename="role1"/>?<userusername="tomcat"password="tomcat"roles="tomcat"/>?<userusername="both"password="tomcat"roles="tomcat,role1"/>?<userusername="role1"password="tomcat"roles="role1"/></tomcat-users>其中,文件開頭聲明了XML的版本和編碼方式,<tomcat-users>和</tomcat-users>之間描述了系統中的角色和用戶。其中<rolerolename="tomcat"/>表示建立了一個名字叫tomcat的角色;<userusername="tomcat"password="tomcat"roles="tomcat"/>表示建立了一個用戶,名字為tomcat,密碼為tomcat,擁有角色tomcat所擁有的權限。一個用戶可以擁有多個角色的權限,<userusername="both"password="tomcat"roles="tomcat,role1"/>表明用戶both擁有角色tomcat和role1兩者的權限。該文件具有擴充性,用戶可以增加角色和用戶。4、EXE格式tomcat安裝文件的安裝與配置A、tomcat安裝文件

    netfjfzlj 2016-03-14   478   0
    P9

      網絡和移動制圖系統功能需求 文檔

    網絡和移動制圖系統功能需求系統包含web客戶端和移動客戶端兩種模式,功能基本一致,具體功能需求如下:Web地圖制圖系統(客戶端)在Apache+Php的開發環境下,建立通過web瀏覽器訪問、B/S架構的自適應地圖制圖和可視化系統系統在MapGuide基礎上進行改造,使用php開發語言服務端采用MongoDB分布式數據庫和地圖訪問服務器,分別管理分塊地圖圖片和分層矢量圖元MongoDB管理的矢量圖元是把地圖圖層切分為不同block的若干圖元組合,以支持多用戶制圖請求的分布式地圖渲染MongoDB數據庫和地圖訪問服務器同時支持Web地圖訪問和移動設備的地圖訪問,為兩者共用具體功能見下面3)—14)移動設備的地圖制圖系統(客戶端)在AndroidSDK和3G移動互聯網的開發環境下,建立通過Android智能手機和平板電腦訪問、C/S架構的自適應地圖制圖和可視化系統系統在OSMAnd基礎上進行改造,使用java開發語言服務端與Web地圖模式相同,采用MongoDB分布式數據庫和地圖訪問服務器,分別管理分塊地圖圖片和分層矢量圖元,并支持多用戶制圖請求的分布式地圖渲染具體功能見下面3)—14)建立遠程地圖服務器(服務端)建立可支持客戶端訪問、作為底圖疊加的遠程地圖服務器建立分塊切圖工具,可以把制作好的全國1:1萬地圖分10級切成不同詳細程度的地圖圖片塊(分級處理、切片處理)大量分塊地圖圖片通過MongoDB來管理,服務器根據客戶端請求,發送指定位置的分塊地圖圖片,提供按縮放等級、經緯度和圖名在線訪問地圖切片大量矢量圖元也通過MongoDB管理,服務器根據地圖制圖文件生成XML地圖渲染文件,發給客戶端,由客戶端進行渲染對小尺度矢量地圖圖層的線、面圖元進行節點化簡,降低數據量和OpenStreeMap具有相同的HTTP訪問接口和OpenStreeMap具有相同的地圖投影和坐標系(WGS84)地圖顯示、縮放、移動連接遠程地圖服務器,獲得和顯示分塊地圖數據如果本地緩存中有分塊圖片數據和矢量圖元組數據(MongoDB組織),則不再下載,直接調用數據顯示從全國范圍到省、地市、縣、街道等逐級細化的地圖放大、縮小、移動功能地圖顯示包括柵格地圖和矢量地圖兩類。柵格地圖為分塊地圖圖片,在服務端已渲染好;矢量地圖為分層、分塊的圖元組合,在客戶端根據渲染文件進行地圖渲染地圖縮放、移動后更新顯示速度為2秒以內遙感影像地圖顯示示例Online遠程遙感影像、交通圖等地圖疊加、聚合OpenStreetMap、谷歌、微軟等遠程地圖模式的選擇、疊加顯示,使坐標能匹配遙感影像、地形、交通地圖等顯示模式切換疊加自己的遠程地圖服務器數據,并使坐標能匹配地圖數據緩存把遠程下載顯示過的地圖圖片(包括自己的地圖服務器和其他外部online地圖分塊圖片)進行緩存,下次需要時先檢查緩存中有沒有,如果沒有則下載,如果有就直接用緩存中的數據把遠程下載的矢量圖元的坐標數據進行緩存,主要是按block存儲的圖元組數據包地圖服務器中按mongoDB存儲的數據塊提供數據下載遠程矢量圖層數據接入、渲染和刷新顯示建立MongoDB空間數據轉換工具,把Arcviewshape文件數據轉換為MongoDB分布式存儲格式連接遠程MongoDB管理的矢量點、線、面圖層數據如果本地緩存中有分塊矢量圖元組數據(MongoDB組織),則不再下載,直接調用數據顯示根據當前顯示區域坐標查詢過濾可顯示圖元在客戶端疊加顯示矢量圖元在客戶端根據渲染文件進行圖元渲染客戶端地圖的平滑刷新人口統計數據指標樹管理建立把指標數結構index.txt和Access指標數據轉入MongoDB的工具1000多項人口統計數據按指標樹進行組織,把結構和真實數據存入MongoDB中連接MongoDB的統計數據指標樹結構,進行顯示提供指標樹的指標單選界面,方便用戶選擇單項指標進行分級制圖提供指標樹的指標多選界面,方便用戶選擇多項指標進行統計制圖地圖與指標數據關聯用戶選擇指標樹中的單項或多項指標MongoDB中存儲的矢量圖元,可以與指定的指標數據進行關聯,即通過矢量圖元序號就可以獲得指標數據支持多用戶對任一矢量圖元指定不同指標數據進行關聯,相互之間不會干擾動態地圖制圖加載遠程矢量圖層,用戶選擇單項指標,選擇色系顏色、符號、分級數,進行分級制圖,并生成制圖文件和渲染文件,刷新客戶端進行最終地圖顯示加載遠程矢量圖層,用戶選擇多項指標,選擇統計符號類型、色系顏色,進行統計制圖,并生成制圖文件和渲染文件,刷新客戶端進行最終地圖顯示統計符號庫提供10多種專題統計符號、專題地圖色庫和制圖工具進行地圖可視化輸入和存儲地圖圖名生成、顯示地圖圖例支持10個用戶同時在線制圖,提交制圖請求后到顯示出結果,延遲不超過5秒分級制圖和統計制圖示例指標數據的列表、ch

    wuqingman 2016-03-14   537   0
    P18

      hibernate4實戰 之第六部分 文檔

    Hibernate4實戰之第六部分:基本實現原理2013-05-1101:35:00標簽:HYPERLINK"http://blog.51cto.com/tag-%E6%95%B0%E6%8D%AE%E5%BA%93.html"\t"_blank"數據庫HYPERLINK"http://blog.51cto.com/tag-SQL.html"\t"_blank"SQLHYPERLINK"http://blog.51cto.com/tag-%E5%AF%B9%E8%B1%A1.html"\t"_blank"對象HYPERLINK"http://blog.51cto.com/tag-Hibernate.html"\t"_blank"HibernateHYPERLINK"http://blog.51cto.com/tag-%E8%A1%8C%E4%B8%9A%E6%95%B0%E6%8D%AE.html"\t"_blank"行業數據HYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205813"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205813"http://3001448.blog.51cto.com/2991448/1205813整體流程1:通過configuration來讀cfg.xml文件2:得到SessionFactory工廠3:通過SessionFactory工廠來創建Session實例4:通過Session打開事務5:通過session的api操作數據庫6:事務提交7:關閉連接?說明:以下分方法描述的實現流程并不是Hibernate的完整實現流程,也不是Hibernate的完整實現順序,只是描述了Hibernate實現這些方法的主干和基本方式,主要是用來理解這些方法背后都發生了些什么,如果需要詳細完整的實現流程,請查閱Hibernate相應文檔和源代碼INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/22/85496e48dbd61a7c31baa95771128a94__1.bmp"\*MERGEFORMATINET?當我們調用了session.save(UserModel)后:1:TO--->PO:Hibernate先在緩存中查找,如果發現在內部緩存中已經存在相同id的PO,就認為這個數據已經保存了,拋出例外。如果緩存中沒有,Hibernate會把傳入的這個TO對象放到session控制的實例池去,也就是把一個瞬時對象變成了一個持久化對象。如果需要Hibernate生成主鍵值,Hibernate就會去生成id并設置到PO上2:客戶端提交事務或者刷新內存3:根據model類型和cfg.xml中映射文件的注冊來找到相應的hbm.xml文件4:根據hbm.xml文件和model來動態的拼sql,如下:insertinto表名(來自hbm.xml)(字段名列表(來自hbm.xml))values(對應的值的列表(根據hbm.xml從傳入的model中獲取值))5:真正用JDBC執行sql,把值添加到數據庫6:返回這個PO的id。INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/22/b41cef57e703ae3c9f920ecd1433a63d__2.bmp"\*MERGEFORMATINET?INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/22/9457a21896d91dab8bfa15f1ee733648__3.bmp"\*MERGEFORMATINET當我們調用了session.update(UserModel)后:1:DO--->PO:首先根據model的主鍵在hibernate的實例池中查找該對象,找到就拋出錯誤。如果沒有就DO--->PO,Hibernate會把傳入的這個DO對象放到session控制的實例池去,也就是把一個瞬時對象變成了一個持久化對象2:客戶端提交事務或者刷新內存

    netfjfzlj 2016-03-14   685   0
    P3

      hibernate4實戰 之第五部分:hibernate的事務和并發 文檔

    Hibernate4實戰之第五部分:Hibernate的事務和并發2013-05-1101:34:00標簽:HYPERLINK"http://blog.51cto.com/tag-Hibernate.html"\t"_blank"HibernateHYPERLINK"http://blog.51cto.com/tag-%E4%BA%8B%E5%8A%A1.html"\t"_blank"事務HYPERLINK"http://blog.51cto.com/tag-%E5%B9%B6%E5%8F%91.html"\t"_blank"并發HYPERLINK"http://blog.51cto.com/tag-%E6%95%B0%E6%8D%AE%E5%BA%93.html"\t"_blank"數據庫HYPERLINK"http://blog.51cto.com/tag-%E5%BA%94%E7%94%A8.html"\t"_blank"應用HYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205814"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205814"http://3001448.blog.51cto.com/2991448/1205814Hibernate本身沒有事務的實現Hibernate直接使用JDBC連接和JTA資源,不添加任何附加鎖定行為。也就是說你在Hibernate里面使用的事務要么是JDBC的事務,要么是JTA的事務。Hibernate不鎖定內存中的對象你的應用程序會按照你的數據庫事務的隔離級別規定的那樣運作,真正對事務的實現和支持也依賴于數據庫。?對于并發處理,Hibernate提供了樂觀鎖和悲觀鎖來進行并發處理Hibernate對自動樂觀并發控制提供版本管理,針對行級悲觀鎖定,Hibernate也提供了輔助的(較小的)API,它使用了SELECTFORUPDATE的SQL語法Hibernate的Session是和事務聯系在一起的可以通過Session去獲取事務的接口,從而進行事務的控制。?數據庫事務應該盡可能的短這樣能降低數據庫中的鎖爭用。數據庫長事務會阻止你的應用程序擴展到高的并發負載。因此,假若在用戶思考期間讓數據庫事務開著,直到整個工作單元完成才關閉這個事務,這絕不是一個好的設計。這就引出一個問題:一個操作單元,也就是一個事務單元的范圍應該是多大?一個操作一個?一個請求一個?一個應用一個??反模式:session-per-operation在單個線程中,不要因為一次簡單的數據庫調用,就打開和關閉一次Session!數據庫事務也是如此。也就是說應該禁止自動事務提交(auto-commit)。?session-per-request最常用的模式是每個請求一個會話。在這種模式下,來自客戶端的請求被發送到服務器端,即Hibernate持久化層運行的地方,一個新的HibernateSession被打開,并且執行這個操作單元中所有的數據庫操作。一旦操作完成(同時對客戶端的響應也準備就緒),session被同步,然后關閉。會話和請求之間的關系是一對一的關系。Hibernate內置了對“當前session(currentsession)”的管理,用于簡化此模式。你要做的一切就是在服務器端要處理請求的時候,開啟事務,在響應發送給客戶之前結束事務,通常使用ServeltFilter來完成。?非托管環境下所謂非托管,指的是:應用程序沒有托管到J2EE環境中,通常由Hibernate自己來負責管理數據庫連接池。應用程序開發人員必須手工設置事務聲明,換句話說,就是手工啟動,提交,或者回滾數據庫事務。?使用JTA又有兩種方式,一種是在Hibernate配置里面修改transaction的factory類,從而在程序里面可以直接使用Hibernate的事務API,也就是程序不用變化。另外一種方式就是直接通過JNDI去查找UserTransaction,然后直接在程序里面使用JTA的接口來控制事務。應用程序級別的版本檢查簡單點說,就是由應用程序自己實現版本檢查來確保對話事務的隔離,從數據訪問的角度來說是最低效

    netfjfzlj 2016-03-14   468   0
    P3

      hibernate4實戰 之第七部分 文檔

    Hibernate4實戰之第七部分:最佳實踐2013-05-1101:36:00標簽:HYPERLINK"http://blog.51cto.com/tag-Hibernate4%E5%AE%9E%E6%88%98%E4%B9%8B%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.html"\t"_blank"Hibernate4實戰之最佳實踐HYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205812"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205812"http://3001448.blog.51cto.com/2991448/1205812設計細顆粒度的持久類并且使用<component>來實現映射。例如使用一個Address持久類來封裝street,suburb,state,postcode.這將有利于代碼重用和簡化代碼重構(refactoring)的工作。對持久類聲明標識符屬性(identifierproperties)。Hibernate中標識符屬性是可選的,不過有很多原因來說明你應該使用標識符屬性。我們建議標識符應該是“人造”的(自動生成,不涉及業務含義)。使用自然鍵(naturalkeys)標識對所有的實體都標識出自然鍵,用<natural-id>進行映射。實現equals()和hashCode(),在其中用組成自然鍵的屬性進行比較。為每個持久類寫一個映射文件不要把所有的持久類映射都寫到一個大文件中。把com.eg.Foo映射到com/eg/Foo.hbm.xml中,在團隊開發環境中,這一點顯得特別有意義。把映射文件作為資源加載把映射文件和他們的映射類放在一起進行部署。考慮把查詢字符串放在程序外面如果你的查詢中調用了非ANSI標準的SQL函數,那么這條實踐經驗對你適用。把查詢字符串放在映射文件中可以讓程序具有更好的可移植性。使用綁定變量就像在JDBC編程中一樣,應該總是用占位符"?"來替換非常量值,不要在查詢中用字符串值來構造非常量值!更好的辦法是在查詢中使用命名參數。不要自己來管理JDBCconnectionsHibernate允許應用程序自己來管理JDBCconnections,但是應該作為最后沒有辦法的辦法。如果你不能使用Hibernate內建的connectionsproviders,那么考慮實現自己來實現org.hibernate.connection.ConnectionProvider考慮使用用戶自定義類型(customtype)假設你有一個Java類型,來自某些類庫,需要被持久化,但是該類沒有提供映射操作需要的存取方法。那么你應該考慮實現org.hibernate.UserType接口。這種辦法使程序代碼寫起來更加自如,不再需要考慮類與Hibernatetype之間的相互轉換。?在性能瓶頸的地方使用硬編碼的JDBC在系統中對性能要求很嚴格的一些部分,某些操作也許直接使用JDBC會更好。但是請先確認這的確是一個瓶頸,并且不要想當然認為JDBC一定會更快。如果確實需要直接使用JDBC,那么最好打開一個HibernateSession然后從Session獲得connection,按照這種辦法你仍然可以使用同樣的transaction策略和底層的connectionprovider。理解Session清洗(flushing)Session會不時的向數據庫同步持久化狀態,如果這種操作進行的過于頻繁,性能會受到一定的影響。有時候你可以通過禁止自動flushing,盡量最小化非必要的flushing操作,或者更進一步,在一個特定的transaction中改變查詢和其它操作的順序。在三層結構中,考慮使用托管對象(detachedobject)當使用一個servlet/sessionbean類型的架構的時候,你可以把已加載的持久對象在sessionbean層和servlet/JSP層之間來回傳遞。使用新的session來為每個請求服務,使用Session.merge()或者Session.saveOrUpdate()來與數據庫同步。在兩層結構中,考慮使用長持久上下文(longpers

    netfjfzlj 2016-03-14   4196   0
    P13

      hibernate4實戰 之 第二部分 文檔

    Hibernate4實戰之第二部分:Hibernate的基本配置2013-05-1101:32:00標簽:HYPERLINK"http://blog.51cto.com/tag-Hibernate.html"\t"_blank"HibernateHYPERLINK"http://blog.51cto.com/tag-%E7%BC%96%E7%A8%8B.html"\t"_blank"編程HYPERLINK"http://blog.51cto.com/tag-c3p0.html"\t"_blank"c3p0HYPERLINK"http://blog.51cto.com/tag-Java.html"\t"_blank"JavaHYPERLINK"http://blog.51cto.com/tag-%E6%95%B0%E6%8D%AE%E5%BA%93.html"\t"_blank"數據庫HYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205817"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205817"http://3001448.blog.51cto.com/2991448/1205817可編程的配置方式-1如果在配置cfg.xml的時候,不想在里面配置hbm.xml怎么辦呢?可在程序里使用可編程的配置方式,也就是使用程序來指定在cfg.xml里面的配置信息,不推薦這種方式。如下:Configurationcfg=newConfiguration()???.addResource("Item.hbm.xml")???.addResource("Bid.hbm.xml");?一個替代方法(有時是更好選擇)是,指定被映射的類,讓Hibernate幫你尋找映射定義文件:Configurationcfg=newConfiguration()???.addClass(org.hibernate.auction.Item.class)???.addClass(org.hibernate.auction.Bid.class);這種方式消除了任何對文件名的硬編碼可編程的配置方式-2還可以通過編程的方式來指定配置屬性:Configurationcfg=newConfiguration()???.addClass(org.hibernate.auction.Item.class)???.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLInnoDBDialect")???.setProperty("hibernate.connection.datasource","java:comp/env/jdbc/test")???.setProperty("hibernate.order_updates","true");其他可以傳入配置屬性的方式:1:properties文件2:xml文件3:設置Java的系統屬性,形如:java–Dproperty=value另外要注意一點:org.hibernate.cfg.Configuration實例被設計成啟動期間(startup-time)對象,一旦SessionFactory創建完成它就被丟棄了。?與數據庫連接的配置有兩種方法,一種是JDBC,一種是DataSourceJDBC的配置INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/c7b4a79cc0e14038212cc6d54ba26252__%E5%9B%BE%E7%89%871.png"\*MERGEFORMATINET示例:<propertyame="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><propertyname="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><propertyname="connect

    netfjfzlj 2016-03-14   778   0
    P10

      hibernate4實戰 之 第一部分 hibernate入門 文檔

    Hibernate4實戰之第一部分Hibernate入門2013-05-1101:31:00標簽:HYPERLINK"http://blog.51cto.com/tag-Hibernate.html"\t"_blank"HibernateHYPERLINK"http://blog.51cto.com/tag-Hibernate4.html"\t"_blank"Hibernate4HYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205818"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205818"http://3001448.blog.51cto.com/2991448/1205818Hibernate是什么???Hibernate是一個輕量級的ORMapping框架??ORMapping原理(ObjectRelationalMapping)?INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/bce2ea80efb685abf97a312ebcf61b34__1.JPG"\*MERGEFORMATINETORMapping基本對應規則:1:類跟表相對應2:類的屬性跟表的字段相對應3:類的實例與表中具體的一條記錄相對應4:一個類可以對應多個表,一個表也可以對應對個類5:DB中的表可以沒有主鍵,但是Object中必須設置主鍵字段6:DB中表與表之間的關系(如:外鍵)映射成為Object之間的關系?7:Object中屬性的個數和名稱可以和表中定義的字段個數和名稱不一樣?ORMapping的基本實現方式:使用JDBC,用SQL來操作數據庫,只是看動態生成還是人工寫代碼來實現。大家想想,我們實現過ORMapping嗎??INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/fef823b1bb37a91ec3013fe2bb441ffb__2.JPG"\*MERGEFORMATINET?INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/8792eaf947c4702ef7556c32cbbe2fe9__3.JPG"\*MERGEFORMATINETHibernate能干什么:???Hibernate主要用來實現Java對象和表之間的映射,除此之外還提供還提供數據查詢和獲取數據的方法,可以大幅度減少開發時人工使用SQL和JDBC處理數據的時間。Hibernate的目標是對于開發者通常的數據持久化相關的編程任務,解放其中的95%。對于以數據為中心的程序來說,它們往往只在數據庫中使用存儲過程來實現商業邏輯,Hibernate可能不是最好的解決方案;對于那些在基于Java的中間層應用中,它們實現面向對象的業務模型和商業邏輯的應用,Hibernate是最有用的。??Hibernate可以幫助你消除或者包裝那些針對特定廠商的SQL代碼,并且幫你把結果集從表格式的表示形式轉換到一系列的對象去。INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/839e032a79e7826912b1c67e51c18f69__4.JPG"\*MERGEFORMATINET一個非常簡要的Hibernate體系結構的高層概要圖INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/6f6ef5745fb905fd91537ca799ca2b1a__5.JPG"\*MERGEFORMATINETHibernate運行時體系結構“最小”的體系結構方案,要求應用程序提供自己的JDBC連接并管理自己的事務。這種方案使用了HibernateAPI的最小子集.?INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/c305b617ab7081c270a20836ba1dd

    netfjfzlj 2016-03-14   567   0
    P15

      hibernate4實戰 之 第三部分:hibernate的基本開發 文檔

    Hibernate4實戰之第三部分:Hibernate的基本開發2013-05-1101:33:00標簽:HYPERLINK"http://blog.51cto.com/tag-Hibernate.html"\t"_blank"HibernateHYPERLINK"http://blog.51cto.com/tag-SQL.html"\t"_blank"SQLHYPERLINK"http://blog.51cto.com/tag-%E8%A1%8C%E4%B8%9A%E6%95%B0%E6%8D%AE.html"\t"_blank"行業數據HYPERLINK"http://blog.51cto.com/tag-%E6%95%B0%E6%8D%AE%E5%BA%93.html"\t"_blank"數據庫HYPERLINK"http://blog.51cto.com/tag-%E5%AF%B9%E8%B1%A1.html"\t"_blank"對象HYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205816"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205816"http://3001448.blog.51cto.com/2991448/12058161:瞬時(Transient)-由new操作符創建,且尚未與HibernateSession關聯的對象被認定為瞬時的。瞬時對象不會被持久化到數據庫中,也不會被賦予持久化標識(identifier)。如果瞬時對象在程序中沒有被引用,它會被垃圾回收器銷毀。使用HibernateSession可以將其變為持久狀態,Hibernate會自動執行必要的SQL語句。?2:持久(Persistent)-持久的實例在數據庫中有對應的記錄,并擁有一個持久化標識。持久的實例可能是剛被保存的,或剛被加載的,無論哪一種,按定義,它存在于相關聯的Session作用范圍內。Hibernate會檢測到處于持久狀態的對象的任何改動,在當前操作單元執行完畢時將對象數據與數據庫同步。開發者不需要手動執行UPDATE。將對象從持久狀態變成瞬時狀態同樣也不需要手動執行DELETE語句。?3:脫管(Detached)-與持久對象關聯的Session被關閉后,對象就變為脫管的。對脫管對象的引用依然有效,對象可繼續被修改。脫管對象如果重新關聯到某個新的Session上,會再次轉變為持久的,在脫管期間的改動將被持久化到數據庫。INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/41af9144df34dda7df09323551ff1c4b__%E6%9C%AA%E5%91%BD%E5%90%8D.PNG"\*MERGEFORMATINET?通過Session接口來操作Hibernate新增——save方法、persist方法1:persist()使一個臨時實例持久化。然而,它不保證立即把標識符值分配給持久性實例,這會發生在flush的時候。persist()也保證它在事務邊界外調用時不會執行INSERT語句。這對于長期運行的帶有擴展會話/持久化上下文的會話是很有用的。2:save()保證返回一個標識符。如果需要運行INSERT來獲取標識符(如"identity"而非"sequence"生成器),這個INSERT將立即執行,不管你是否在事務內部還是外部。這對于長期運行的帶有擴展會話/持久化上下文的會話來說會出現問題。?刪除——delete方法修改——有四種方法來做,分別是:1:直接在Session打開的時候load對象,然后修改這個持久對象,在事務提交的時候,會自動flush到數據庫中。2:修改托管對象,可用update或merge方法3:自動狀態檢測:saveOrUpdate方法update和merge方法1:如果數據庫里面存在你要修改的記錄,update每次是直接執行修改語句;而merge是先在緩存中查找,緩存中沒有相應數據,就到數據庫去查詢,然后再合并數據,如果數據是一樣的,那么merge方法不會去做修改,如果數據有不一樣的地方,

    netfjfzlj 2016-03-14   498   0
    P12

      hibernate4實戰 之 第四部分:關系映射 文檔

    Hibernate4實戰之第四部分:關系映射2013-05-1101:33:00標簽:HYPERLINK"http://blog.51cto.com/tag-Hibernate.html"\t"_blank"HibernateHYPERLINK"http://blog.51cto.com/tag-Java.html"\t"_blank"JavaHYPERLINK"http://blog.51cto.com/tag-%E7%B1%BB.html"\t"_blank"類HYPERLINK"http://blog.51cto.com/tag-SQL.html"\t"_blank"SQLHYPERLINK"http://blog.51cto.com/tag-String.html"\t"_blank"StringHYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205815"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205815"http://3001448.blog.51cto.com/2991448/1205815數據表之間的關系分為三類:一對一、一對多、多對多一對一數據表(部門表?和?部門主管表)一對多數據表(部門表?和?部門下的人員表)多對多數據表(部門表?和?人員表)?INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/ba8cdefeaa03414a6b2ef409df61f73a__1.bmp"\*MERGEFORMATINET根據相互尋找的關系又分:單向和雙向對象一對一(雙向)java代碼:HYPERLINK"http://sishuok.com/forum/blogPost/list/2479.html"查看HYPERLINK"http://sishuok.com/forum/blogPost/list/2479.html"復制到剪貼板HYPERLINK"http://sishuok.com/forum/blogPost/list/2479.html"打印public?class?A?{??private?B?b?=?null;??}??public?class?B?{??private?A?a?=?null;??}??n對象一對多?(雙向)??public?class?A?{??private?B?b?=?null;??}??public?class?B?{??private?Collection<A>?colA?=?null;??}??n對象多對多?(雙向)??public?class?A?{??private?Collection<B>?colB?=?null;??}??public?class?B?{??private?Collection<A>?colA?=?null;??}???雙向一對多是最常用的映射關系<key>元素<key>元素在父映射元素定義了對新表的連接,并且在被連接表中定義了一個外鍵引用原表的主鍵的情況下經常使用。java代碼:HYPERLINK"http://sishuok.com/forum/blogPost/list/2479.html"查看HYPERLINK"http://sishuok.com/forum/blogPost/list/2479.html"復制到剪貼板HYPERLINK"http://sishuok.com/forum/blogPost/list/2479.html"打印<key??column="columnname"(1)??on-delete="noaction|cascade"(2)??property-ref="propertyName"(3)??not-null="true|false"(4)??update="true|false"(5)??unique="true|false"(6)??/>??(1)column(可選):外鍵字段的名稱。也可以通過嵌套的<column>指定。(2)on-delete(可選,默認是noacti

    netfjfzlj 2016-03-14   631   0
    P2

      Zookeeper 安裝配置說明 文檔

    準備3臺機器假設有三臺機器,hostname和ip對應關系是:192.168.1.131zk01192.168.1.132zk02192.168.1.133zk03ZooKeeper不存在明顯的master/slave關系,各個節點都是服務器,leader掛了,會立馬從follower中選舉一個出來作為leader.由于沒有主從關系,也不用配置SSH無密碼登錄了,各個zk服務器是自己啟動的,互相之間通過TCP端口來交換數據。

    yjeeqbart 2016-03-09   2240   0
    P7

      Redis 技術分享 文檔

    Redis使用Redis簡介:redis是一個開源的、網絡化的、基于內存的、可進行數據持久化的Key-Value存儲系統。類似于其他結構存儲系統,通過key-value的方式來保存數據,支持的類型有String、List、Set、Hash、Sortset。Redis安裝:可從官網上下載redis,rar文件,解壓后,進入bin---release文件下雙擊redis-server文件可打開運行程序,雙擊redis-cli可打開客戶端。在客戶端可以使用簡單的命令來給redis緩沖set值。Redis代碼中使用:這里建立的是一個maven項目,需要在pom.xml文件中加入引入redis的jar文件。

    SkyRoc 2016-03-09   2585   0
    P154

      Java Android面試題大全 文檔

    筆試題之Java基礎部分基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語法,集合的語法,io的語法,虛擬機方面的語法,其他。有些題來自網上搜集整理,有些題來自傳智播客學員面試后的反饋,說真的,少數一些網上的面試題,我真懷疑其是否還有存在價值!1、一個".java"源文件中是否可以包括多個類(不是內部類)?有什么限制?可以有多個類,但只能有一個public的類,并且public的類名必須與文件名相一致。

    a414978028 2016-03-06   618   0
    P7

      Servlet API 中文版 文檔

    基本類和接口一、javax.servlet.Servlet接口servlet抽象集是javax.servlet.Servlet接口,它規定了必須由Servlet類實現由servlet引擎識別和管理的方法集。Servlet接口的基本目標是提供生命期方法init()、service()和destroy()方法。servlet接口中的方法voidinit(ServletConfitconfig)throwsServletException在servlet被載入后和實施服務前由servlet引擎進行?次性調用。如果init()產生溢出UnavailableException,則servle退出服務。ServletConfiggetServletConfig()返回傳遞到servlet的init()方法的ServletConfig對象

    xch_open 2016-03-06   689   0
    P10

      java正則表達式簡介 文檔

    Java的正則表達式講解:(為了能看清,本文正則表達式用中文的句號代替英文句點)英文句點符號:匹配單個任意字符。eg:表達式”t。o可以匹配:tno,t#o,teo等等。不可以匹配:tnno,to,Tno,t正o等。方括號:只有方括號里面指定的字符才參與匹配,也只能匹配單個字符。eg:表達式:t[abcd]n只可以匹配:tan,tbn,tcn,tdn。不可以匹配:thn,tabn,tn等。3|符號。相當與“或”,可以匹配指定的字符,但是也只能選擇其中一項進行匹配。eg:表達式:t(a|b|c|dd)n只可以匹配:tan,tbn,tcn,tddn。

    xch_open 2016-03-06   3113   0
    P3

      jersey的圖片服務器配置 文檔

    在本機上在準備一個tomcat用于在本機上運行,這樣有兩臺tomcat便于測試,那么就需要更改一下配置:打開第二個tomcat的conf文件夾下的server.xml,更換各個端口,防止與本機的tomcat端口沖突:在同目錄下的web.xml文件,添加以下配置:更改完之后啟動這第二個tomcat然后再這第二個tomcat的webapps目錄下新建一個空的web項目,里面有一個upload文件夾,如下:編寫一個客戶端的Java項目導入jersey的jar包和依賴包

    xch_open 2016-03-06   644   0
    P22

      jbpm4.4文檔 文檔

    工作流基礎工作流相關概念工作流(Workflow),就是“業務過程的部分或整體在計算機應用環境下的自動化”,它主要解決的是“使在多個參與者之間按照某種預定義的規則傳遞文檔、信息或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現”。工作流管理系統(WfMS,WorkflowManagementSystem)的主要功能是通過計算機技術的支持去定義、執行和管理工作流,協調工作流執行過程中工作之間以及群體成員之間的信息交互。工作流需要依靠工作流管理系統來實現。工作流管理系統是定義、創建、執行工作流的系統,應能提供以下三個方面的功能支持:定義工作流:包括具體的活動、規則等運行控制功能:在運行環境中管理工作流過程,對工作流過程中的活動進行調度運行交互功能:指在工作流運行中,WfMS與用戶(活動的參與者)及外部應用程序工具交互的功能。定義工作流執行工作流采用工作流管理系統的優點提高系統的柔性,適應業務流程的變化?實現更好的業務過程控制,提高顧客服務質量降低系統開發和維護成本工作流框架有:Jbpm、OSWorkflow、ActiveBPEL、YAWL等OA(辦公自動化)主要技術之一就是工作流。

    xch_open 2016-03-06   601   0
    P10

      Android高級技術筆試面試試題及答案 文檔

    (B)A,GPS定位更精確,缺點是只能在戶外使用B,NETWORK通過基站和Wi-Fi信號來獲取位置信息,速度較慢,耗電較少。C,獲取用戶位置信息,我們可以使用其中一個,也可以同時使用兩個。D,GPS定位耗電嚴重,并且返回用戶位置信息的速度遠不能滿足用戶需求。(2分)在開發AppWidget窗口小部件時,需要繼承(D)類A,AppWidgetReceiverB,AppWidgetConfigureC,AppWidgetManagerD,AppWidgetProvider(4分)在AsyncTask中下列哪個方法是負責執行那些很耗時的后臺計算工作的

    junying51 2016-03-04   5851   0
    1 2 3 4 5 6 7 8 9 10

    關鍵詞

    最新上傳

    熱門文檔

  • sesese色