■ Hibernate 란?

 

ORM 프레임 워크중 하나이다. 과거와 다르게 자바 엔터프라이즈(J2EE) 애플리케이션 서버가 없어도 별도로 동작한다.

 

Hibernate concept

 

Hibernate 뿐만 아니라, 모든 ORM의 컨셉은 객체와 persistence계층 간(데이터베이스 테이블)에 맵핑을 하는 것이다.

객체  관계에는 연관(assosiation), 집합(aggregation), 의존(dependency) 관계가 존재하며, 데이터베이스에는 primary key  foreign key 관계로 표현된다. ORM은 이 관계의 맵핑을 바탕으로, 객체에 대한 조작만으로, 구체적인 persistence(데이터베이스, 파일시스템, 네트웍 등) 계층에 대해 알지 못해도 데이터들을 다룰수 있게하는 것이다.

, ORM의 일종인 Hibernate  자바객체를 통해 데이터베이스가 Oracle, MySql, MSSQL 등 에 상관없이 다룰수 있도록 하는 추상화를 목표로 한다 이 때, 자바객체는 domain model 이 되며, 이 도메인 모델에 대한 생성, setter, getter, 삭제를 통해 데이터베이스 테이블을 변경시 킬 수 있다.

 

 

 

출처) https://m.blog.naver.com/PostView.nhn?blogId=movman&logNo=100106214299&proxyReferer=https%3A%2F%2Fwww.google.com%2F

'develop > JPA, Hibernate' 카테고리의 다른 글

엔티티 매니저 등록/수정/삭제/조회 정리  (0) 2019.11.24
엔티티 매니저 설정, 생성과정  (0) 2019.11.24
데이터베이스 방언  (0) 2019.10.19
JPQL 이란? (querydsl)  (0) 2019.10.12
JPA, ORM이란 무엇인가?  (0) 2019.09.30

■ JPA란 무엇인가

 

JAP는 자바진영의 ORM 기술 표준으로, 애플리케이션과 JDBC 사이에서 동작한다.

간단히 말하면 ORM의 표준 인터페이스 기술이다.

 

JAP의 간략한 구조

JAP를 알기 위해서는 ORM에 대해 자세히 알아야한다.

 

 

 

 

■ ORM란 무엇인가

 

ORM(Object Relational Mapping) 은 이름 그대로 객체와 관계형 데이터베이스를 매핑한다는 뜻이다. ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결해준다. 예를들어 ORM 프레임워크를 사용하면 객체를 데이터베이스에 저장할 때 INSERT SQL을 직접 작성하는 것이 아니라 객체를 마치 자바 컬렉션에 저장하듯이 ORM 프레임워크에 저장하면 된다. 그러면 ORM 프레임워크가 적절한 INSERT SQL을 생성해서 데이터베이스 객체에 저장해준다.

 

 

- JAP 저장의 구조  jap.persist(Member);

JAP 저장의 구조 jap.persist(Member);

 

 

- JAP 조회의 구조  jap.find(MemberId);

JAP 조회의 구조  jap.find(MemberId);

 

위에서 말하는 것처럼 ORM은 SQL을 개발자 대신 생성해서 데이터베이스에 전달해주는것 뿐만 아니라 다양한 패러다임의 불일치 까지 해결해준다. 따라서 객체 측면에서는 정교한 객체 모델링을 할 수 있고 관계형 데이터베이스는 데이터베이스에 맞도록 모델링을 하면 된다.

 

 

출처) 자바 ORM 표준 JAP 프로그래밍. 저자 : 김영한

'develop > JPA, Hibernate' 카테고리의 다른 글

엔티티 매니저 등록/수정/삭제/조회 정리  (0) 2019.11.24
엔티티 매니저 설정, 생성과정  (0) 2019.11.24
데이터베이스 방언  (0) 2019.10.19
JPQL 이란? (querydsl)  (0) 2019.10.12
Hibernate 란?  (0) 2019.09.30

출처 ) https://genesis8.tistory.com/214

 

 

■ DAO란 무엇인가

 

Data Access Object 의 줄임말로, 말그대로 DB에 대한 접근을 DAO가 담당하기 위해 조회하거나 조작되는 기능을 한다. 

이 이상의 긴설명은 불필요할 것으로 보인다.

 

- DAO의 클래스 예제

//DB와 연결할 Connection을 가져온다.

//어떤 DB를 사용할 것이며, 어떤 드라이브와 로그인 정보를 사용할 것인가.

//작업이 끝나면 사용한 리소스를 시스템에 돌려준다.

public class TestDao {

 

public void add(DTOBean dto) throws ClassNotFoundException, SQLException{

Class.forName("com.mysql.jdbc.Driver");

 

Connection c= DriverManager.getConnection("jdbc:mysql://localhost/springbook", "spring", "book");

 

PreparedStatement ps = c.prepareStatement("insert into users(id,name,password) value(?,?,?)");

 

ps.setString(1,  dto.getName());

ps.setInt(2,  dto.getValue());

ps.setString(3,  dto.getData());

 

ps.executeUpdate();

 

ps.close();

c.close();

 }

}

 

 

 

■ DTO란 무엇인가

 

Data Transfer Objet의 줄임말이다. VO (Value Object) 로 바꿔서 말할 수 있는데 계층간 데이터 교환을 위한 자바빈즈를 말한다. VO와 DTO의 차이점은 VO는 read only의 속성을 가진다.

 

- DTO 클래스 예제

 

public class DTObean {

 

  private String name;

 

  private String age;

 

  private String phoneNo;

 

  public String getName() {

    return name;

  }

 

  public String setName(String name) {

    this.name = name;

  }

 

  public String getAge() {

    return age;

  }

 

  public String setAge(String age) {

    this.age = age;

  }

 

  public String getPhoneNo() {

    return phoneNo;

  }

 

  public String setPhoneNo(String phoneNo) {

    this.phoneNo= phoneNo;

  }

 

}

 

 

 

 

 

 

 

 

'IT 용어 정리' 카테고리의 다른 글

Spring Boot 란?  (0) 2019.10.04
JVM 이란?  (0) 2019.09.30
MyBatis 란?  (0) 2019.09.26
NoSQL 이란?  (0) 2019.09.17
node.js 란 무엇인가  (0) 2019.09.14

출처 ) https://m.blog.naver.com/PostView.nhn?blogId=wwwkang8&logNo=220989381100&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

 

■ Mybatis 란 무엇인가?

객체지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 보다 쉽게 도와주는 프레임워크이다.

관계형 데이터 베이스 프로그래밍을 하기위해 JDBC를 제공받는다. 

 

 

■ Mybatis 의 특징

1. SQL문이 코드로부터 완전히 분리된다. 기존에는 DAO파일에 모든 SQL문을 작성하였다. 하지만 Mybatis에서는 Mapper 파일에 SQL코드를 입력해놓고 DAO파일에서 필요할 때마다 가져와서 사용할 수 있다.

 

2. Mapper 파일에서만 SQL코드를 입력하고 나중에 SQL코드를 변경할 때 이곳에서 유지보수만 하면 DAO에서는 아무런 영향을 받지 않는다. DAO에서는 Mapper파일에서 작성된 SQL 코드만 갖다 쓰기만 하면 된다.

 

 

■MyBatis의 구성
1. MyBatis 경설정 파일(SqlSessionConfig.xml) MyBatis가 JDBC 코드를 실행하는데 필요한 전반에 걸친 세팅을 한다
- TypAlias 설정 : 사용할 모델 클래스에 대한 별칭 설정. <typeAlias>
-  DB 연동을 위한 설정 : DataBase에 어떻게 접속할 것인지에 대한 설정. <enviroment>
- Mapper 설정 파일 등록 : 매핑 설정이 어디있는지. <mapper>

2. Mapper 설정 파일(member.xml, company.xml) : Sql문과 관련된 설정을 하는 파일로서 MyBatis 설정파일(SqlSessionConfig.xml)에 등록을 하여야 한다.
- 주요 구성 요소
         1) SQL문 등록 태그
               - SQL문 태그의 구성 요소 : Parameter, Result, ,SQL문 등록
               - SQL 태그 : insert, delete, update, select
               - 공통 SQL문 설정 태그 : <sql>
          2) select 결과 처리 설정
               - <resultMap>

 

 

 

 

 

 

 

 

 

 

'IT 용어 정리' 카테고리의 다른 글

JVM 이란?  (0) 2019.09.30
DAO 와 DTO 란?  (0) 2019.09.26
NoSQL 이란?  (0) 2019.09.17
node.js 란 무엇인가  (0) 2019.09.14
spring MVC 와 DispatcherServlet 의 정의  (0) 2019.09.14

+ Recent posts