在上一章中我們詳細討論了iBATIS的哲學觀,以及這個框架的來歷。我們也說過,iBATIS是一個混合式的解決方案(hybrid solution),借鑒了多種操作關系數據庫的方法的理念。那么iBATIS到底是什么呢?這一章就來回答這個問題。 iBATIS是一種data mapper。Martin Fowler在他的《Patterns of Enterprise Application Architecture》一書中是這樣描述Data Mapper的: 一個映射層,在對象和數據庫間傳遞數據,并保持兩者與映射層本身相獨立。. 注:Mapper是在兩個獨立對象間建立通信關系的一種對象。
iBATIS的安裝和配置;在前面的章節中,我們了解了iBATIS的sqlMap.config文件的配置,還給出了一個映射語句文件的示例。現在您應該具備了一定基礎,可以進一步完善我們的數據訪問層了。本章和下一章(執行非查詢語句)將詳細討論在DataMap文件中創建和使用映射語句的相關內容。在本章中,我們將首先瀏覽映射語句的大體內容以及它們的前提知識。然后我們將解釋如何使用映射語句從數據庫中獲取類型化的對象(typedobject),以及如何傳入參數來限制返回的數據(比如添加查詢條件)。
在上一章中我們詳細討論了iBATIS的哲學觀,以及這個框架的來歷。我們也說過,iBATIS是一個混合式的解決方案(hybridsolution),借鑒了多種操作關系數據庫的方法的理念。那么iBATIS到底是什么呢?這一章就來回答這個問題。iBATIS是一種datamapper。MartinFowler在他的《Patterns of Enterprise Application Architecture》一書中是這樣描述DataMapper的:一個映射層,在對象和數據庫間傳遞數據,并保持兩者與映射層本身相獨立。.注:Mapper是在兩個獨立對象間建立通信關系的一種對象。Martin很好地區分了數據映射(DataMapping)和元數據映射(MetadataMapping),后者正是O/RM工具的依據,這種工具將數據庫的表和列映射到應用程序中的類和字段(field),也就是說它將數據庫的元數據映射到類的元數據。
映射參數(MappingParameters)對于大多數SQL語句來說,它們有用是因為我們可以在運行時向其傳入參數。有兩種方式可以將參數(parameter)映射到語句中:內聯(inline)參數和外部(external)參數。使用內聯參數,配置一般較為簡單,iBATIS會根據您的配置進行“揣測”,以獲取其它細節信息。而使用外部參數時,配置一般更為顯式的(具體)——因為您告訴iBATIS它該如何去做。4.3.1外部參數映射參數映射(ParameterMap)定義了一個參數的有序列表,它與查詢語句的占位符相匹配。
本章內容包括iBATISAPI的更多內容插入數據更新和刪除數據使用存儲過程對數據庫執行查詢無疑很重要,但多數程序同時也需要將數據寫入數據庫。在本章中,我們將探究使用iBATIS操作數據庫的幾種方式。本章的內容以第4章介紹的概念為基礎,因此,如果您剛開始接觸iBATiS,還沒讀過第4章,可以先去瀏覽一下,因為這一章中的關于參數映射的絕大部分內容同樣適用于本章的非查詢語句。5.1更新數據的基石?在第4章中,您已經學習了所有的語句類型和基本查詢相關的部分API。這里我們再來看一下執行非查詢語句常用的API,然后回顧一下更新數據庫相關的語句類型。
iBATIS快速上手iBATIS框架非常簡單,它上手起來同樣簡單。有多簡單呢?使用iBATIS只要五分鐘我們就可以創建一個完整的應用程序了——當然這不是大型的ERP(Enterprise Resource Planning)解決方案,也不是大規模的電子商務網站,只是一個簡單的命令行工具,它可以執行iBATISSQLMap中的SQL語句并返回結果到控制臺。
映射參數(MappingParameters)對于大多數SQL語句來說,它們有用是因為我們可以在運行時向其傳入參數。有兩種方式可以將參數(parameter)映射到語句中:內聯(inline)參數和外部(external)參數。使用內聯參數,配置一般較為簡單,iBATIS會根據您的配置進行“揣測”,以獲取其它細節信息。而使用外部參數時,配置一般更為顯式的(具體)——因為您告訴iBATIS它該如何去做。4.3.1外部參數映射參數映射(ParameterMap)定義了一個參數的有序列表,它與查詢語句的占位符相匹配。注意,參數對象的屬性定義可以按任意順序,參數映射會確保每個值得以正確地傳入。
iBATIS In Action:序言和目錄序言在我的軟件開發生涯中,我曾工作于多種不同的環境中。在同一家公司中,人們往往會以不同的方式進行開發。考慮到各種各樣的挑戰——人、工具,它們就是開發人員所處的世界——我們會很快意識到這個世界是如此變化多端。我永遠不能了解下一個咨詢項目會給我帶來何種意外的挑戰,所以總會在工具箱里放上各種不同的工具。在數年時間內,iBATIS不過是一個小代碼塊,它能在我需要手工編寫JDBC代碼時為我節省一些時間。那么iBATIS是如何從我的工具箱中的小工具蛻變為一個Apache項目,被數以千計的人使用的呢?我從未有意把iBATIS作為一個完全的開源項目。代碼就放在那里,但我既沒有出售它,也沒有與任何人共享。
執行非查詢語句(二)本章內容包括iBATIS API的更多內容插入數據更新和刪除數據使用存儲過程5.3更新和刪除數據至此,我們已經學習了如何向數據庫插入數據以及獲取相應記錄的鍵值,再來看看如何更新和刪除數據。Insert方法返回的是object類型的值,而Update和Delete方法則返回int類型的值,該值指示了更新或刪除語句所影響的記錄數。iBATIS框架允許使用單條語句操作一條或多條記錄。這是它與大多數ORM工具不同的地方之一,后者一般只能修改單條記錄。5.3.1并發更新處理iBATIS目前尚未實現的一個功能是鎖定記錄以管理對相同數據的并發修改。
中我們詳細討論了iBATIS的哲學觀,以及這個框架的來歷。我們也說過,iBATIS是一個混合式的解決方案(hybridsolution),借鑒了多種操作關系數據庫的方法的理念。那么iBATIS到底是什么呢?這一章就來回答這個問題。iBATIS是一種datamapper。MartinFowler在他的《Patterns of Enterprise Application Architecture》一書中是這樣描述DataMapper的:一個映射層,在對象和數據庫間傳遞數據,并保持兩者與映射層本身相獨立。.注:Mapper是在兩個獨立對象間建立通信關系的一種對象。Martin很好地區分了數據映射(DataMapping)和元數據映射(MetadataMapping),后者正是O/RM工具的依據,這種工具將數據庫的表和列映射到應用程序中的類和字段(field),也就是說它將數據庫的元數據映射到類的元數據。
*什么是多租戶(Multitenancy)“多租戶”的概念最早起源于軟件領域,指一個軟件實例服務于多個用戶的架構。每個用戶稱為一個租戶。 云計算中的多租戶“多租戶”也是“云計算”的基本屬性之一。云計算的三種服務層次——SaaS、PaaS和IaaS均體現了對“多租戶”不同的支持。SaaSPaaSIaaS出租的資源舉例說明軟件的使用權。典型如:電子郵件系統。用戶(租戶)擁有使用賬號。租戶登錄使用系統。軟件開發平臺資源(如開發支撐系列工具,應用存儲空間,運行容器,平臺服務等等)。如:某租戶擁有1G應用存儲空間,應用容器(數量不限,總內存上限4G),2個緩存服務。硬件基礎設施(如CPU、內存,存儲,IP,網絡設備等等)。
Part1:IT部署視圖演化及挑戰Part2:動態基礎設施Part3:SaaS架構關注技術Part4:Q&AIT系統部署視圖演化-1N輪視圖演化后架構演化面對的挑戰Part1:IT部署視圖演化及挑戰Part2:動態基礎設施Part3:SaaS架構關注技術Part4:Q&A云計算關鍵特性基礎設施供應生命周期資源池動態伸縮CloudCloudDDDDDDDDDPart1:IT部署視圖演化及挑戰Part2:動態基礎設施Part3:SaaS關注技術Part4:Q&ASaaS關鍵特性高伸縮:多租戶,功能可配置,流程可配置SaaS架構關注內容數據存儲的挑戰傳統解決方案VS新興解決方案SQL集群技術-MySQL集群方案有點缺點速度適用場合NDB可用于負載均衡場合;可用于高可靠性場合;高伸縮性;真正的數據庫冗余;容易維護。隨著數據庫的變大,對RAM的需求變得更大,因此成本很高幾乎比典型的單獨服務器(無千兆以太網,無SCI卡,存儲引擎相關的限制少)慢10倍。
SaaS是Software-as-a-service(軟件即服務)的簡稱,它是一種通過Internet提供軟件的模式,用戶不用再購買軟件,而是向提供商租用基于Web的軟件,來管理企業經營活動,無需對軟件進行維護,服務提供商會全權管理和維護軟件,對于個人,SaaS帶來了很多工作和生活的便利;對于許多小型企業,SaaS是采用先進技術的最好途徑,它消除了企業購買、構建和維護基礎設施和應用程序的需要,近年來,SaaS的興起已經使中小型企業切實地降低了各項成本。
在云計算方面,Salesforce 可以稱為業界的領袖,它不僅在產品方面比較成熟,而且在思維方面也是引領潮流的,特別是在SaaS(Software as a Service,軟件即服務)和PaaS(Platform as a Service,平臺即服務)這個兩個領域內。
1.什么是多租戶多租戶是一種結構---服務提供節點提供一個應用程序實例,多租戶共同訪問該實例。2.多租戶的好處在服務端,應用的部署變的簡單了。因為我們只需部署一個實例即可。高效地利用硬件,節省成本。特別是對中、小企業有吸引力。3.多租戶模式的困難企業擔心初始成本過大。現有的單租戶程序如何遷移到多租戶程序。用戶擔心維護時,需要復雜地定制,維護成本高。4.1多租戶的定義多租戶應用---多個租戶共享硬件資源,硬件資源提供一個共享的應用和數據庫實例。每個租戶認為自己獨占資源,因為實例提供高度的定制以滿足租戶所需。租戶---是指求租SaaS解決方案的企業實體。一個租戶一般會有多個用戶。
ASP.NETMVC介紹這是一個初級的關于ASP.NETMVC的教程,你可以創建一個簡單的可以讀寫數據庫的WEP應用程序。讓我們來使用 Visual Web Developer2010 Express 來創建第一個ASP.NET MVC WebApplication。讓我們來創建一個可以添加和顯示影片列表的應用程序。這個簡短的教程說明了什么是MVC架構和用VS快速的搭建這個小示例,本文翻譯網上一篇關于介紹MVC的文章,如果大家有興趣的話可以瀏覽原版的內容
大數據面臨的挑戰BigData,BigWorld4業務的革新數據成為業務發展的核心銀行提供所有歷史交易信息查詢航空根據機票信息分析用戶屬性,并提供個性化的優化推薦QQ空間日均上傳2億張照片,每分鐘13.9萬雙11支付寶交易達1.058億筆,每分鐘約7.3萬;淘寶天貓吸引2.13億獨立用戶訪問新浪微博日均發博1.3億條用數據對話數據6近5年數據增漲5倍以上結構化數據增漲緩慢,非結構化數據呈指數增漲態勢全球數據產生十年增漲趨勢全球數據存儲增漲趨勢數據增漲背后是業務的不斷革新“大數據”的誕生大量化、多樣化、時效性、價值密度低是大數據顯著特征大量化非結構化數據增漲是結構化數據的10到50倍Google每天處理24PB的數據手機、傳感器等終端產生大量數據PB是臨界值多樣化來源多.
SQLInjection(SQL注入)嚴重性非常高概述就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。原理它是利用現有應用程序,將(惡意)的SQL命令注入到后臺數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句例子程序從Http請求中讀取一個sql查詢。
Yahoo!的Exceptional Performance團隊為改善Web性能帶來最佳實踐。他們為此進行了一系列的實驗、開發了各種工具、寫了大量的文章和博客并在各種會議上參與探討。最佳實踐的核心就是旨在提高網站性能。Excetional Performance團隊總結出了一系列可以提高網站速度的方法。可以分為7大類34條。
1.協議頭:建議在指向圖片或其他媒體文件、樣式表和腳本的URL地址中省略http:https:協議部分,除非已知相應文件不能同時兼容2個協議.