Object relational mapping là gì

Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions. Someone suggested I use an ORM for a project that I"m designing, but I"m having trouble finding information on what it is or how it works.

Can anyone give me a brief explanation of what an ORM is and how it works & how I should get started using one?


*

*

Introduction

Object-Relational Mapping (ORM) is a technique that lets you query and manipulate data from a database using an object-oriented paradigm. When talking about ORM, most people are referring to lớn a library that implements the Object-Relational Mapping technique, hence the phrase "an ORM".

Bạn đang xem: Object relational mapping là gì

Bạn sẽ xem: Object relational mapping là gì

An ORM library is a completely ordinary library written in your language of choice that encapsulates the code needed lớn manipulate the data, so you don"t use SQL anymore; you interact directly with an object in the same language you"re using.

For example, here is a completely imaginary case with a pseudo language:

You have a book class, you want to lớn retrieve all the books of which the tác giả is "Linus". Manually, you would do something like that:

book_list = new List();sql = "SELECT book FROM library WHERE author = "Linus"";data = query(sql); // I over simplify ...while (row = data.next()) book = new Book(); book.setAuthor(row.get("author"); book_list.add(book);With an ORM library, it would look lượt thích this:

book_list = BookTable.query(author="Linus");The mechanical part is taken care of automatically via the ORM library.

Pros & Cons

Using ORM saves a lot of time because:

You don"t have khổng lồ write poorly-formed SQL (most web programmers really suck at it, because SQL is treated like a "sub" language, when in reality it"s a very powerful & complex one).Sanitizing; using prepared statements or transactions are as easy as calling a method.

Xem thêm: Giá Vé Tham Quan Khu Vui Chơi Trẻ Em Royal City Hà Nội Ở Đâu?

Using an ORM library is more flexible because:

It fits in your natural way of coding (it"s your language!).It abstracts the DB system, so you can change it whenever you want.The model is weakly bound lớn the rest of the application, so you can change it or use it anywhere else.It lets you use OOP goodness lượt thích data inheritance without a headache.

But ORM can be a pain:

You have to learn it, and ORM libraries are not lightweight tools;You have to lớn set it up. Same problem.Performance is OK for usual queries, but a SQL master will always vị better with his own SQL for big projects.It abstracts the DB. While it"s OK if you know what"s happening behind the scene, it"s a trap for new programmers that can write very greedy statements, like a heavy hit in a for loop.

How to learn about ORM?

Well, use one. Whichever ORM library you choose, they all use the same principles. There are a lot of ORM libraries around here:

If you want lớn try an ORM library in website programming, you"d be better off using an entire framework stack like:

Do not try khổng lồ write your own ORM, unless you are trying to learn something. This is a gigantic piece of work, và the old ones took a lot of time và work before they became reliable.