Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

JDBC VS Hibernate

Giải đáp các vấn đề được liệt kê ở trên:

1. Hibernate không thể kết nối với cơ sở dữ liệu "Hiện có". Nó luôn cố gắng tạo ra một cái của riêng mình.

Cái này sai. Ngủ đông có thể kết nối với cơ sở dữ liệu hiện có và không phải lúc nào nó cũng cố gắng tạo lại cơ sở dữ liệu đó. Bạn chỉ nên chuyển tham số như hbm2ddl. auto .

2. Cơ sở dữ liệu của chúng tôi có thể truy cập bằng cùng một ứng dụng trên các nền tảng khác nhau (đám mây, máy chủ, VPS, Máy tính Cá nhân). Hibernate có thể gây ra sự cố do bộ nhớ đệm của nó trong trường hợp này.

Hibernate có bộ nhớ đệm có thể điều chỉnh được, vì vậy đây cũng không phải là vấn đề.

3. Chúng tôi không bao giờ muốn cung cấp "công việc tạo bảng" cho mã java. Chúng tôi luôn tạo bảng theo cách thủ công.

Không vấn đề gì. Xem trang.1 ở trên. Ngoài ra, có một số thư viện thuận tiện để tạo và cập nhật bảng gián tiếp (ví dụ: liquibase ) có thể được sử dụng cùng với hibernate một cách hoàn hảo.

4. Chúng ta có thể phải sử dụng các câu lệnh SQL rất dài và phức tạp. Lần trước, chúng tôi đã sử dụng một câu lệnh có hơn 150 dòng, nối hơn 20 bảng. Chúng tôi nghi ngờ liệu chúng tôi có gặp phải những rắc rối trong vấn đề này khi nói đến Hibernate hay không.

Bạn luôn có thể sử dụng các lệnh gọi JDBC trực tiếp và gọi các truy vấn SQL gốc thông qua chế độ ngủ đông, nếu cần thiết.

5. Mã SQL của chúng tôi rất đẹp và chuẩn. Mã được tạo ở chế độ ngủ đông có vẻ hơi bẩn đối với chúng tôi.

Một lần nữa, nếu bạn phải gọi một số mã SQL phức tạp về logic thay vì tự động tạo ở chế độ ngủ đông - bạn có thể làm điều đó.

6. Chúng tôi luôn sử dụng MySQL. Không bao giờ sử dụng bất kỳ DB nào khác.

Không phải là một vấn đề gì cả. Hibernate có hỗ trợ phương ngữ MySQL đặc biệt:org.hibernate.dialect.MySQLDialect .

7. Ứng dụng chúng tôi tạo yêu cầu bảo mật tối đa, liên quan đến y tế. Nếu ít nhất một bản ghi dữ liệu bị rò rỉ, chúng tôi đã hoàn tất.

Các vấn đề bảo mật không liên quan đến kỹ thuật ORM. Hibernate chỉ là lớp hướng đối tượng hợp lý và thuận lợi giữa các lệnh gọi JDBC của cơ sở dữ liệu thuần túy và các công cụ lập trình viên. Nó không ảnh hưởng bằng cách nào đó đến an ninh mạng chung.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP MySQL TẢI DỮ LIỆU THÔNG TIN Trợ giúp

  2. DOUBLE so với DECIMAL trong MySQL

  3. Làm thế nào để xóa hàng mysql sau khi thời gian trôi qua?

  4. BIGINT UNSIGNED VALUE nằm ngoài phạm vi SQL của tôi

  5. Tạo các thủ tục được lưu trữ với PDO trong PHP