官網定義:物件關係對映(Object Relational Mapping,簡稱ORM)。
說白了,就是在程式設計過程中,把物件跟資料庫中的表對應起來,把以前對資料庫的操作(增刪查改),都變為對物件的操作。
沒有ORM框架的時候,流程大概是這樣的:
1.後臺拿到頁面傳遞的引數:
String name=request.getParameter(“name”);
String gender=request.getParameter(“gender”);
2.呼叫service.insert(name,gender);
3.再呼叫dao.insert(name,gender);
4.DAO層自己拼寫sql: insert into user values(name,gender);
假如有二十個屬性呢?一百個屬性呢?
有ORM框架的時候,流程大概是這樣的:
User user = request.getParameter(user); //name、gender會自動set進去,框架會做
2.呼叫service.insert(user);
3.再呼叫dao.insert(user);
4.ORM框架會自動的把dao.insert(user)翻譯成SQL:insert into user values(name,gender);
這時候增加幾個屬性,修改起來是不是稍微少了一些。
1.提高開發效率,使開發更加物件化。
2.可移植,資料庫型別換了都不害怕(不過如果有資料庫方言的話,也需要做修改)。
當然缺點也是有的:
1.物件和資料庫的對映需要消耗系統性能。
2.多表聯查,ORM的語法會變得複雜。
官網定義:物件關係對映(Object Relational Mapping,簡稱ORM)。
說白了,就是在程式設計過程中,把物件跟資料庫中的表對應起來,把以前對資料庫的操作(增刪查改),都變為對物件的操作。
沒有ORM框架的時候,流程大概是這樣的:
1.後臺拿到頁面傳遞的引數:
String name=request.getParameter(“name”);
String gender=request.getParameter(“gender”);
2.呼叫service.insert(name,gender);
3.再呼叫dao.insert(name,gender);
4.DAO層自己拼寫sql: insert into user values(name,gender);
假如有二十個屬性呢?一百個屬性呢?
有ORM框架的時候,流程大概是這樣的:
1.後臺拿到頁面傳遞的引數:
User user = request.getParameter(user); //name、gender會自動set進去,框架會做
2.呼叫service.insert(user);
3.再呼叫dao.insert(user);
4.ORM框架會自動的把dao.insert(user)翻譯成SQL:insert into user values(name,gender);
這時候增加幾個屬性,修改起來是不是稍微少了一些。
ORM的優缺點1.提高開發效率,使開發更加物件化。
2.可移植,資料庫型別換了都不害怕(不過如果有資料庫方言的話,也需要做修改)。
當然缺點也是有的:
1.物件和資料庫的對映需要消耗系統性能。
2.多表聯查,ORM的語法會變得複雜。