Object Relational Mapping Là Gì

Locked. This question và 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 sầu me a brief explanation of what an ORM is và how it works & how I should get started using one?


*

*

Introduction

Object-Relational Mapping (ORM) is a technique that lets you query và manipulate data from a database using an object-oriented paradigm. When talking about ORM, most people are referring khổng lồ a library that implements the Object-Relational Mapping technique, hence the phrase "an ORM".

Bạn đang 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 to 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 pseuvì chưng language:

You have a book class, you want khổng lồ retrieve all the books of which the author is "Linus". Manually, you would vày something like that:

book_danh mục = 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_các mục.add(book);With an ORM library, it would look like this:

book_danh sách = 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 sầu to write poorly-formed Squốc lộ (most Web programmers really suông xã 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: Bảng Tra Cung Khảm Là Gì - Bảng Tra Cung Mệnh Và Niên Mệnh

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 Mã Sản Phẩm is weakly bound to the rest of the application, so you can change it or use it anywhere else.It lets you use OOPhường. goodness like data inheritance without a headabít.

But ORM can be a pain:

You have sầu khổng lồ learn it, & ORM libraries are not lightweight tools;You have to mix 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 to lớn try an ORM library in Web programming, you"d be better off using an entire framework stachồng like:

Do not try to write your own ORM, unless you are trying to learn something. This is a gigantic piece of work, and the old ones took a lot of time & work before they became reliable.