Hibernate-ORM 개요

JDBC 란 무엇입니까?

JDBC는 Java Database Connectivity. Java 프로그램에서 관계형 데이터베이스에 액세스하기위한 Java API 세트를 제공합니다. 이러한 Java API를 사용하면 Java 프로그램이 SQL 문을 실행하고 SQL 호환 데이터베이스와 상호 작용할 수 있습니다.

JDBC는 다른 플랫폼에서 실행될 수 있고 수정없이 다른 DBMS와 상호 작용할 수있는 데이터베이스 독립 응용 프로그램을 작성할 수있는 유연한 아키텍처를 제공합니다.

JDBC의 장단점

JDBC의 장점 JDBC의 단점

깨끗하고 간단한 SQL 처리

대용량 데이터에서 좋은 성능

소규모 애플리케이션에 매우 적합

배우기 쉬운 간단한 구문

대규모 프로젝트에서 사용되는 경우 복잡함

큰 프로그래밍 오버 헤드

캡슐화 없음

MVC 개념을 구현하기 어려움

쿼리는 DBMS에 따라 다릅니다.

왜 객체 관계형 매핑 (ORM)인가?

객체 지향 시스템으로 작업 할 때 객체 모델과 관계형 데이터베이스간에 불일치가 있습니다. RDBMS는 데이터를 표 형식으로 표현하는 반면 Java 또는 C #과 같은 객체 지향 언어는 상호 연결된 객체 그래프로 표현합니다.

적절한 생성자와 관련 공용 함수가있는 다음 Java 클래스를 고려하십시오.

public class Employee {
   private int id;
   private String first_name; 
   private String last_name;   
   private int salary;  

   public Employee() {}
   public Employee(String fname, String lname, int salary) {
      this.first_name = fname;
      this.last_name = lname;
      this.salary = salary;
   }
   
   public int getId() {
      return id;
   }
   
   public String getFirstName() {
      return first_name;
   }
   
   public String getLastName() {
      return last_name;
   }
   
   public int getSalary() {
      return salary;
   }
}

위의 객체가 다음 RDBMS 테이블에 저장되고 검색된다는 것을 고려하십시오.

create table EMPLOYEE (
   id INT NOT NULL auto_increment,
   first_name VARCHAR(20) default NULL,
   last_name  VARCHAR(20) default NULL,
   salary     INT  default NULL,
   PRIMARY KEY (id)
);

첫 번째 문제, 몇 페이지 나 애플리케이션을 개발 한 후 데이터베이스 디자인을 수정해야한다면 어떻게해야할까요? 둘째, 관계형 데이터베이스에 객체를로드하고 저장하면 다음과 같은 5 가지 불일치 문제에 노출됩니다.

Sr. 아니. 불일치 및 설명
1

Granularity

때로는 데이터베이스의 해당 테이블 수보다 많은 클래스가있는 개체 모델이 있습니다.

2

Inheritance

RDBMS는 객체 지향 프로그래밍 언어의 자연스러운 패러다임 인 상속과 유사한 것을 정의하지 않습니다.

Identity

RDBMS는 정확히 하나의 '동일성'개념 인 기본 키를 정의합니다. 그러나 Java는 객체 ID (a == b)와 객체 동등성 (a.equals (b))을 모두 정의합니다.

4

Associations

객체 지향 언어는 객체 참조를 사용하여 연관을 나타내는 반면 RDBMS는 연관을 외래 키 열로 나타냅니다.

5

Navigation

Java와 RDBMS에서 객체에 액세스하는 방법은 근본적으로 다릅니다.

그만큼 OBject-R기분 좋은 Mapping (ORM)은 위의 모든 임피던스 불일치를 처리하는 솔루션입니다.

ORM은 무엇입니까?

ORM은 OBject-R기분 좋은 Mapping (ORM)은 관계형 데이터베이스와 Java, C # 등과 같은 객체 지향 프로그래밍 언어간에 데이터를 변환하는 프로그래밍 기술입니다.

ORM 시스템은 일반 JDBC에 비해 다음과 같은 장점이 있습니다.

Sr. 아니. 장점
1 비즈니스 코드가 DB 테이블이 아닌 객체에 액세스합시다.
2 OO 논리에서 SQL 쿼리의 세부 정보를 숨 깁니다.
JDBC 'under the hood'를 기반으로합니다.
4 데이터베이스 구현을 다룰 필요가 없습니다.
5 데이터베이스 구조가 아닌 비즈니스 개념을 기반으로하는 엔티티.
6 트랜잭션 관리 및 자동 키 생성.
7 응용 프로그램의 빠른 개발.

ORM 솔루션은 다음과 같은 네 가지 항목으로 구성됩니다.

Sr. 아니. 솔루션
1 영구 클래스의 개체에 대한 기본 CRUD 작업을 수행하는 API입니다.
2 클래스 및 클래스 속성을 참조하는 쿼리를 지정하는 언어 또는 API입니다.
매핑 메타 데이터를 지정하기위한 구성 가능한 기능입니다.
4 더티 검사, 지연 연관 페치 및 기타 최적화 기능을 수행하기 위해 트랜잭션 객체와 상호 작용하는 기술입니다.

Java ORM 프레임 워크

Java에는 몇 가지 영구 프레임 워크와 ORM 옵션이 있습니다. 영구 프레임 워크는 개체를 관계형 데이터베이스에 저장하고 검색하는 ORM 서비스입니다.

  • Enterprise JavaBeans 엔티티 Bean
  • 자바 데이터 객체
  • Castor
  • TopLink
  • 봄 DAO
  • Hibernate
  • 그리고 더 많은