java - orm

來源:趣味經驗館 1.05W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java orm是什麼,讓我們一起了解一下?

對象關係映射(Object-Relational Mapping,簡稱ORM)是一種為了解決程序的面向對象模型與數據庫的關係模型互不匹配問題的技術;簡單的説,ORM是通過使用描述對象和數據庫之間映射的元數據(在Java中可以用XML或者是註解),將程序中的對象自動持久化到關係數據庫中或者將關係數據庫表中的行轉換成Java對象,其本質上就是將數據從一種形式轉換到另外一種形式。

ORM的優缺點有哪些?

優勢:

第一:隱藏了數據訪問細節,“封閉”的通用數據庫交互,ORM的核心。他使得我們的通用數據庫交互變得簡單易行,並且完全不用考慮該死的SQL語句。快速開發,由此而來。

第二:ORM使我們構造固化數據結構變得簡單易行。在ORM年表的史前時代,我們需要將我們的對象模型轉化為一條一條的SQL語句,通過直連或是DB helper在關係數據庫構造我們的數據庫體系。而現在,基本上所有的ORM框架都提供了通過對象模型構造關係數據庫結構的功能。

java orm

缺點:

第一:無可避免的,自動化意味着映射和關聯管理,代價是犧牲性能(早期,這是所有不喜歡ORM人的共同點)。現在的各種ORM框架都在嘗試使用各種方法來減輕這塊(LazyLoad,Cache),效果還是很顯著的。

第二:面向對象的查詢語言(X-QL)作為一種數據庫與對象之間的過渡,雖然隱藏了數據層面的業務抽象,但並不能完全的屏蔽掉數據庫層的設計,並且無疑將增加學習成本。

第三:對於複雜查詢,ORM仍然力不從心。雖然可以實現,但是不值的。視圖可以解決大部分calculated column,case ,group,having,order by, exists,但是查詢條件(a and b and not c and (d or d))。

示例説明如下:

public class M_People{undefinedstring _Pl_ID;[DataFieldAttribute("Pl_ID", "Int")]public string Pl_ID{undefinedget { return _Pl_ID; }set { _Pl_ID = value; }}int _PL_Age;[DataFieldAttribute("PL_Age", "Int")]public int PL_Age{undefinedget { return _PL_Age; }set { _PL_Age = value; }}string _Pl_Sex;[DataFieldAttribute("Pl_Sex", "nvarchar")]public string Pl_Sex{undefinedget { return _Pl_Sex; }set { _Pl_Sex = value; }}string _Pl_LoginName;[DataFieldAttribute("Pl_LoginName", "nvarchar")]public string Pl_LoginName{undefinedget { return _Pl_LoginName; }set { _Pl_LoginName = value; }}string _Pl_TrueName;[DataFieldAttribute("Pl_TrueName", "nvarchar")]public string Pl_TrueName{undefinedget { return _Pl_TrueName; }set { _Pl_TrueName = value; }}string _PL_Pwd;[DataFieldAttribute("PL_Pwd", "nvarchar")]public string PL_Pwd{undefinedget { return _PL_Pwd; }set { _PL_Pwd = value; }}}

熱門標籤