Hỏi đáp

Cài Đặt Orm (Object Relational Mapping) Trên Java – viettingame

Trong cách phát triển ứng dụng web hiện nay chắc rằng chúng ta đã quen với với từ khóa ORM(Object Relational Mapping). Lúc mà thời đại của những framework ứng với những từ ngữ đang lên ngôi một cách mạnh mẽ và uy lực, ORM sắp như là việc lựa tìm tuyệt vời của những nhà phát triển hiện nay.Chúng ta đang xem: Orm là gì

ORM giúp chúng ta dễ dàng và đơn giản thao tác với dữ liệu vớiDatabase hơn, giúp chúng ta dễ code, dễ maintain hơn . . . Ở nội dung bài viết này tôi sẽ reviews chung về ORM, đi sâu vào phân tích những điểm ưu điểm, nhược điểm và một khi vận dụng chúng trong những dự án công trình thực tiễn.

Đang xem: Orm là gì, nó sinh hoạt thế nào và tôi nên sử dụng nó thế nào?

Làm cho dễ theo dõi từ thời điểm này của nội dung bài viết tôi xin được sử dụng ORM thay cho cụm từ Object Relational Mapping

*

1. ORM là gì ?

Theo Wikipedia:

Object-relational mapping (ORM, O/RM, and O/R mapping tool) in computer science is a programming technique for converting data between incompatible type systems using object-oriented programming languages. This creates, in effect, a “virtual object database” that can be used from within the programming language. There are both không tính tiền and commercial packages available that perform object-relational mapping, although some programmers opt to construct their own ORM tools.

Hiểu một cách giản dị thì

ORM là một trong kỹ thuật lập trình giúp ánh xạ những record dữ liệu trong hệ quản trị trung tâm dữ liệu lịch sự dạng đối tượng người sử dụng đang định nghĩa trong những class – một quan niệm thịnh hành được sử dụng trong toàn bộ những từ ngữ tân tiến ngày này như: Java, PHP, Ruby. Chúng ta mà thậm chí vận dụng kĩ thật này với bất kì dự án công trình nào các bạn thích.

*

Theo Martin Fowler sở hữu hai patterns được vận dụng cho những cách thiết kế ORM không giống nhau.

Một sốORMnổi tiếng sử dụng Active Record mà thậm chí kể tên là: Eloquent, CachePHP, JOOQ, TOPLINK

*

*

Một trong những ORM nổi tiếng sử dụng Data Mapper như: Doctrine, Hibernate, SqlAlchemy

2. ORM sinh hoạt thế nào ?

Đặc trưng cơ phiên bản của ORM là gói gọn CSDL trong 1 object. một phần của object sẽ chứa data, và phần còn sót lại lo việc data xử lý như nào và biến nó thành CSDL quan hệ.

ORM giải quyết và xử lý vấn đề đồng nhất giữa kiểu dữ liệu trả về không giống nhau. Một phía là trung tâm dữ liệu, ở đó dữ liệu được thể hiện dưới dạng tập hợp những phiên bản ghi. Một phía là những đối tượng người sử dụng, ở đó dữ liệu được hiện thị dưới dạng object

*

3. Ưu và nhược điểm ORM

Ví dụ về việc tìm kiếm danh sách phiên bản ghi với ĐK với sql thuần

book_list = new List();sql = “SELECT * FROM library WHERE author = “Linus””;data = query(sql);while (row = data.next()){ book = new Book(); book.setAuthor(row.get(“author”); book_list.add(book);}Với ORM, nó sẽ giản dị như sau

book_list = BookTable.query(author=”Linus”);Từ ví dụ giản dị trên chúng ta dễ dàng và đơn giản nhận thấy những ưu điểm sau lúc sử dụng ORM

Ưu điểm

Rất nhiều thứ được tiến hành “tự động”, liên quan tới việc xử lí dữ liệu, trong ví dụ trên chúng ta ko cần ưa chuộng tới việc sử dụng vòng để convert data từ mysql ra, Chỉ nên biết đầu vào là keyword đầu ra trả lại 1 danh sách những quyển sách sở hữu author=LinusViệc sử dụng ORM làm các bạn buộc phải phải viết code theo quy mô MVC, khiến cho code của doanh nghiệp dễ sửa đổi, gia hạn hơn.Chúng ta không nhất thiết phải biết quá nhiều về MYSQL, các bạn vẫn mà thậm chí tiếp cận dễ dàng và đơn giản với ORM.Model k ràng buộc ngặt nghèo với ứng dụng, hay nói cách khác, Model thì linh hoạt, vì như thế vậy các bạn mà thậm chí thay đổi hoặc sử dụng nó bất kì chỗ nàoORM cho phép các bạn tận dụng ưu điểm của OOP như kế thừa dữ liệu mà ko phải làm cho đầu đau

Nhược điểm

Với mỗi framework sẽ có một thư viện ORM không giống nhau, tất nhiên là các bạn phải mất thời hạn học nó. Và vì như thế chúng là thư viện nên sẽ rất “nặng trĩu”.Performance ổn so với những truy vấn thường thì, nhưng Raw SQL sẽ luôn luôn làm tốt hơn với những dự án công trình to.ORM được xem là abstracts của DB. Nếu như bạn ko ưa chuộng tới những gì thực sự xẩy ra lúc sử dụng ORM. Nó mà thậm chí là mẫu bẫy với những bài toán N + 1 query.4 Review performance của ORM

Như ở phần nhược điểm mình sở hữu nói ORM sẽ sở hữu được performance chậm hơn so với việc sử dụng raw sql. Dưới phía trên là một thống kê với Eloquent ORM của Laravel và raw mysql.Môi trường thiên nhiên:

CPU: Quad core Intel Xeon E31220Network: BroaNetXtreme BCM5722 Gigabit EthePCI ExpressMemory: 8.0 GBHDD: 2000.4 GBOperating System: CentOS

4.1 Insert

Ở phía trên những nhà thử nghiệm đã insert số lượng nội dung bài viết không giống nhau từ 1000 tới 10000 cho tất cả 2 kĩ thuật trong những vòng lặp.

Xem thêm: Gameplay Cashflow Tiếng Việt Trực tuyến, Hướng Dẫn Cách Gameplay Cashflow 101 Phiên bản Trực tuyến

Eloquent ORM

Số lượtSố bài viếtLượt 1 (ms)Lượt 2(ms)Lượt 3 (ms)Trung bình cùng (ms)Sai lệch (ms)

1 1000 665,25 619,5 585,6 623,5 39,97
2 2000 1150 1140 1110 1133,3 20,81
3 3000 1490 1490 1420 1466,7 40,41
4 4000 1770 1790 1670 1743,3 64,29
5 5000 2080 2090 2220 2130,0 78,10
6 6000 2540 2510 2560 2536,7 25,16
7 7000 2930 3010 3080 3006,7 75,05
8 8000 3360 3520 3380 3420,0 87,17
9 9000 3800 3900 3880 3860,0 52,91
10 10000 4270 4360 4390 4340,0 62,44

Raw SQL

Số lượtSố bài viếtLượt 1 (ms)Lượt 2(ms)Lượt 3 (ms)Trung bình cùng (ms)Sai lệch (ms)

1 1000 195,81 189,62 180,1 188,5 7,91
2 2000 322,78 335,64 307,01 321,8 14,33
3 3000 413,4 437,62 458,24 436,4 22,44
4 4000 598,87 567,57 559,01 575,2 20,98
5 5000 725,5 740,94 780,15 748,9 28,17
6 6000 867,93 869,12 891,27 876,1 13,14
7 7000 1000 996,14 949,05 981,7 28,36
8 8000 1150 1120 1130 1133,3 15,27
9 9000 1190 1270 1220 1226,7 40,41
10 10000 1430 1380 1450 1420,0 36,05

Từ bảng trên ta sở hữu biểu đồ như sau

4.2 Update

Eloquent ORM

Số lượtSố bài viếtLượt 1 (ms)Lượt 2(ms)Lượt 3 (ms)Trung bình cùng (ms)Sai lệch (ms)

1 1000 305,59 316,06 297,93 306,5 9,10
2 2000 522,06 565,12 543,43 543,5 21,53
3 3000 778,4 772,33 790,52 780,4 9,26
4 4000 1040 1010 1080 1043,3 35,11
5 5000 1290 1240 1260 1263,3 25,16
6 6000 2540 2510 2560 2536,7 25,16
7 7000 2930 3010 3080 3006,7 75,05
8 8000 3360 3520 3380 3420,0 87,17
9 9000 3800 3900 3880 3860,0 52,91
10 10000 4270 4360 4390 4340,0 62,44

Raw SQL

Số lượtSố bài viếtLượt 1 (ms)Lượt 2(ms)Lượt 3 (ms)Trung bình cùng (ms)Sai lệch (ms)

1 1000 195,81 189,62 180,1 188,5 7,91
2 2000 322,78 335,64 307,01 321,8 14,33
3 3000 413,4 437,62 458,24 436,4 22,44
4 4000 598,87 567,57 559,01 575,2 20,98
5 5000 725,5 740,94 780,15 748,9 28,17
6 6000 867,93 869,12 891,27 876,1 13,14
7 7000 1000 996,14 949,05 981,7 28,36
8 8000 1150 1120 1130 1133,3 15,27
9 9000 1190 1270 1220 1226,7 40,41
10 10000 1430 1380 1450 1420,0 36,05

Từ bảng trên ta sở hữu biều đồ sau

4.3 Select

Ở phía trên những thứ nghiệm chia làm 3 lượt

4.4 Review và phân tích

Từ những số liệu trên mà thậm chí dễ dàng và đơn giản thấy được performance của raw sql rõ tốt hơn so với ORM trong toàn bộ những hành vi select, insert, update.

Lí do ở phía trên là: ORM cần thời hạn tạo Model instances, tạo ra những property cho model và transform đối tượng người sử dụng model thành dữ liệu quan hệ trước lúc tiến hành việc tiếp xúc với database. Toàn bộ những gì đằng sau nó là Laravel đã convert từng code Eloquent ORM thành câu lệnh SQL thích hợp và sau đó thực thi trên tầng database và trả lại thành tựu lại tầng application. Vì như thế vậy thời hạn để thực thi 1 tác vụ luôn luôn mất nhiều thời hạn hơn so với việc sử dụng raw sql.

Nhưng khoan, đừng vội nhìn những số lượng trên mà vội nói ORM là đồ bỏ đi.

Trong thực tiễn không người nào select vài nghìn phiên bản ghi, hay tiến hành việc tạo ra vài nghìn phiên bản ghi trong một lúc.

Tức là lúc số lượng phiên bản ghi càng ít thì độ chênh lênh về hiệu suất tránh đi đáng kể. Lúc đó cùng thêm việc sử dụng cách kĩ thuật cache của ORM làm cho ứng dụng của doanh nghiệp cũng tạm gật đầu được so với những tiện lợi về vận tốc phát tiển ứng dụng(thời hạn phát triển), loại bỏ việc sử dụng code lặp đi lặp lại, bảo mật tốt hơn vào nhiều thứ tuyệt vời khác nữa.

5. Tổng kết

Tóm lại, đi xuyên suốt cả nội dung bài viết, mình đã mô tả cách sinh hoạt của ORM, nêu những điểm ưu điểm và nhược điểm của ORM. Việc sở hữu nên sử dụng ORMhay ko vẫn là đề tài tranh luận chưa xuất hiện hồi kết.

Xem thêm: trò chơi Chien Binh Than Thoai, Gameplay Chiến Binh Thần Thoại 24H

Cảm ơn chúng ta đã theo dõi nội dung bài viết trên, trong nội dung bài viết sở hữu xem thêm từ một trong những nguồn.

Về Viettingame.com

Viettingame.com - Chuyên trang web tổng hợp những thông tin hữu ích trên internet như thông tin về game, tin tổng hợp
Xem tất cả các bài viết của Viettingame.com →

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *