ORM的實(shí)現(xiàn)原理:其實(shí),要實(shí)現(xiàn)JavaBean的屬性到數(shù)據(jù)庫(kù)表的字段的映射,任何ORM框架不外乎是讀某個(gè)配置文件把JavaBean的屬 性和數(shù)據(jù)庫(kù)表的字段自動(dòng)關(guān)聯(lián)起來(lái),當(dāng)從數(shù)據(jù)庫(kù)Query時(shí),自動(dòng)把字段的值塞進(jìn)JavaBean的對(duì)應(yīng)屬性里,當(dāng)做INSERT或UPDATE時(shí),自動(dòng)把 JavaBean的屬性值綁定到SQL語(yǔ)句中。但是,幾乎所有的ORM都提供“按需讀取”的功能,比如一個(gè)User有id,name,email和 address這4個(gè)字段,但是address字段很少用,于是ORM只讀取前3個(gè)字段,直到調(diào)用User的getAddress()方法時(shí),才去數(shù)據(jù)庫(kù) 中讀取address的值。這個(gè)功能顯然不能通過User的get/set完成,因此,ORM需要采用某種方式生成一個(gè)User類的子類,并且覆寫get /set方法,這樣,才能在調(diào)用get方法時(shí)有機(jī)會(huì)從數(shù)據(jù)庫(kù)中讀取。類似的對(duì)User的修改檢測(cè)也是這樣實(shí)現(xiàn)的。