什么是orm ORM的意思是什么呢?
對(duì)象/關(guān)系映射(ORM)是隨著面向?qū)ο筌浖_(kāi)發(fā)方法的發(fā)展而產(chǎn)生的。面向?qū)ο蟮拈_(kāi)發(fā)方法是當(dāng)今企業(yè)應(yīng)用開(kāi)發(fā)環(huán)境中的主流開(kāi)發(fā)方法,關(guān)系數(shù)據(jù)庫(kù)是企業(yè)應(yīng)用環(huán)境中永久存儲(chǔ)數(shù)據(jù)的主流數(shù)據(jù)存儲(chǔ)系統(tǒng)。對(duì)象和關(guān)系數(shù)據(jù)是業(yè)
對(duì)象/關(guān)系映射(ORM)是隨著面向?qū)ο筌浖_(kāi)發(fā)方法的發(fā)展而產(chǎn)生的。面向?qū)ο蟮拈_(kāi)發(fā)方法是當(dāng)今企業(yè)應(yīng)用開(kāi)發(fā)環(huán)境中的主流開(kāi)發(fā)方法,關(guān)系數(shù)據(jù)庫(kù)是企業(yè)應(yīng)用環(huán)境中永久存儲(chǔ)數(shù)據(jù)的主流數(shù)據(jù)存儲(chǔ)系統(tǒng)。對(duì)象和關(guān)系數(shù)據(jù)是業(yè)務(wù)實(shí)體的兩種形式。業(yè)務(wù)實(shí)體在內(nèi)存中表示為對(duì)象,在數(shù)據(jù)庫(kù)中表示為關(guān)系數(shù)據(jù)。內(nèi)存中的對(duì)象之間存在關(guān)聯(lián)和繼承關(guān)系,而數(shù)據(jù)庫(kù)中的關(guān)系數(shù)據(jù)不能直接表示多對(duì)多的關(guān)聯(lián)和繼承關(guān)系。因此,對(duì)象關(guān)系映射(object-relational mapping,ORM)系統(tǒng)一般以中間件的形式存在,主要實(shí)現(xiàn)程序?qū)ο蟮疥P(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)的映射。面向?qū)ο笫菑能浖こ痰幕驹恚ㄈ珩詈?、聚合和封裝)發(fā)展起來(lái)的,關(guān)系數(shù)據(jù)庫(kù)是從數(shù)學(xué)理論發(fā)展起來(lái)的。這兩種理論有很大的不同。為了解決這個(gè)問(wèn)題,對(duì)象關(guān)系映射技術(shù)應(yīng)運(yùn)而生。
ORM的意思是什么呢?
對(duì)象關(guān)系映射(ORM)旨在像操作對(duì)象一樣操作數(shù)據(jù)庫(kù)。因?yàn)閿?shù)據(jù)庫(kù)不是面向?qū)ο蟮模孕枰幊虂?lái)映射。常見(jiàn)的ORM框架包括hibernate,類(lèi)似ORM的框架包括mybatis,而newbee使用hibernate和mybatis,每次操作表時(shí)都需要編寫(xiě)Dao文件。做一些重復(fù)的工作很無(wú)聊。Bee框架:一個(gè)十分鐘就能學(xué)會(huì)的ORM框架。它不需要為每個(gè)Dao編寫(xiě)代碼,因此節(jié)省了時(shí)間和精力。開(kāi)發(fā)效率很高,編碼復(fù)雜度為O(1)。一個(gè)javaorm框架,開(kāi)發(fā)成本和開(kāi)發(fā)速度都不比PHP差。
ORM是什么?
從ORM的名稱可以看出原理:引用映射,將對(duì)象轉(zhuǎn)換成SQL語(yǔ)句,然后持久化到RDB。
映射記錄對(duì)象和RDB(表)之間的映射關(guān)系,可以是XML文件或注釋。然而,不同的ORM產(chǎn)品具有不同的功能和復(fù)雜性。Hibernate很重,而ibatis很輕。