Tôi đang tìm kiếm các tùy chọn để trừu tượng hóa chi tiết máy chủ cơ sở dữ liệu khỏi ứng dụng của tôi (trong C++), tôi muốn viết mã của mình để độc lập với phần phụ trợ cơ sở dữ liệu thực tế. Tôi biết MySQL có một thư viện tốt, nhưng tôi không muốn bị ràng buộc với một cơ sở dữ liệu thực hiện duy nhất. Có những lựa chọn tốt cho điều này?Thư viện nguồn mở để truy cập cơ sở dữ liệu trừu tượng trong C++?
5
A
Trả lời
1
4
SOCI là tốt. Hỗ trợ nhiều cơ sở dữ liệu, hoạt động tốt, API kiểu C++ hiện đại, hoạt động với sự tăng cường.
1
Qt cung cấp lớp trừu tượng cơ sở dữ liệu. Xem: http://doc.trolltech.com/4.6/qsqldatabase.html.
1
4
Ý kiến của tôi là quên một trình điều khiển cơ sở dữ liệu chéo và tập trung vào việc tìm kiếm hoặc tạo Lớp truy cập dữ liệu chéo cơ sở dữ liệu. Một vài điều reaons:
- Truy vấn phức tạp (đọc bất kỳ thứ gì không phải là đồ chơi) luôn sử dụng một hoặc hai tính năng dành riêng cho cơ sở dữ liệu. Ví dụ:
LIMIT
vàOFFSET
, thường được sử dụng để phân trang, không phổ biến. - Sớm hay muộn bạn sẽ muốn chèn hàng loạt và bạn sẽ muốn nó càng nhanh càng tốt, vì 3 giờ là tốt hơn 6 giờ. Mỗi cơ sở dữ liệu có một cách "tối ưu" khác nhau để làm điều này, do đó, DAL của bạn sẽ cần phải đặc biệt trường hợp này anyways.
- Cơ sở dữ liệu khác nhau có thể trưng ra các cơ chế ràng buộc khác nhau — thậm chí các loại cột tùy chỉnh — có thể đáng được tận dụng khi có thể (PostgreSQL tuyệt vời cho việc này).
- Nếu bạn muốn thực hiện bất kỳ bộ nhớ đệm cấp ứng dụng nào, bạn cần có DAL anyways.
Vì vậy, hãy tự mình sử dụng libmysql
- chỉ cần ẩn nó sau tường lửa trình biên dịch trong DAL của bạn và chuẩn bị trao đổi nó sau này. Bạn có thể tự bảo vệ mình khỏi việc chuyển đổi cơ sở hạ tầng mà không phải sử dụng trình bao bọc SQL mẫu số thấp nhất.
Nếu điều đó không khớp với bạn, hãy xem SQLAPI++.
Các vấn đề liên quan
- 1. Tìm kiếm một thư viện C++ cơ sở dữ liệu flatfile/xml mã nguồn mở
- 2. Cơ sở dữ liệu đối tượng mở?
- 3. Cơ sở dữ liệu tốt với thư viện C?
- 4. Thư viện liên lạc cơ sở dữ liệu C++
- 5. Cơ sở dữ liệu Truy cập SQL trong Excel VBA
- 6. lớp trừu tượng cho cơ sở dữ liệu Node.js
- 7. Thư viện java nguồn mở để đọc dữ liệu ECG?
- 8. C# Cơ sở dữ liệu truy cập: DBNull vs null
- 9. tạo mã truy cập để nhập cơ sở dữ liệu
- 10. mô hình lớp cơ sở trừu tượng và các lớp con trong cơ sở dữ liệu
- 11. Cách tổ chức lớp Truy cập cơ sở dữ liệu?
- 12. Tăng số lượt truy cập trong cơ sở dữ liệu
- 13. web.py cơ sở dữ liệu chọn truy cập
- 14. Truy cập hàm tạo từ lớp cơ sở trừu tượng với sự phản chiếu
- 15. Truy cập cơ sở dữ liệu dụng cụ
- 16. Sqlite + C#: Không thể mở tệp cơ sở dữ liệu
- 17. Thư viện từ điển nguồn mở
- 18. Làm thế nào để sử dụng thư viện cơ sở dữ liệu SOCI C++?
- 19. Các thuật toán C# và thư viện cấu trúc dữ liệu nguồn mở được đề xuất
- 20. Truy cập Meteor cơ sở dữ liệu sản xuất
- 21. Django: Truy vấn một lớp cơ sở trừu tượng
- 22. Truy cập cơ sở dữ liệu SQLite từ dòng lệnh
- 23. Thư viện kiểu dữ liệu biến thể cho C
- 24. Truy vấn Cơ sở dữ liệu MDB của Microsoft Truy cập bằng LINQ và C#
- 25. Lớp hoặc Lớp cơ sở trừu tượng?
- 26. CodeIgniter: Multiple Databases - Truy cập cấu hình cơ sở dữ liệu trong cơ sở dữ liệu thứ hai
- 27. Đối tượng truy cập dữ liệu PHP
- 28. Làm thế nào để bạn truy cập hai cơ sở dữ liệu trong Grails
- 29. Cách tốt nhất để truy cập cơ sở dữ liệu SQL Server bằng C# .Net
- 30. Lớp cơ sở hoặc trợ giúp trừu tượng
Khối truy cập dữ liệu doanh nghiệp có sẵn trong C#. Có thể bạn đã tạo một số trình bao bọc C++ được quản lý nếu đó là một tùy chọn cho bạn. –