티스토리 뷰

인프런수업/JPA

h2

날따라해봐요요롷게 2022. 4. 25. 15:57

h2 란 무엇일까?

 

document를 살펴보자

http://h2database.com/html/main.html

 

the Java SQL database.

 

The main features of H2 are:

  • Very fast, open source, JDBC API
  • Embedded and server modes; disk-based or in-memory databases
  • Transaction support, multi-version concurrency
  • Browser based Console application

특징을 살펴보면 -> 자바 sql db이며, 빠르고 내장형 인메모리 db이며 브라우저 기반의 콘솔 어플이다.


Connection Modes

  • Embedded mode (local connections using JDBC)
  • Server mode (remote connections using JDBC or ODBC over TCP/IP)

 

Embedded Mode (Local모드)

In embedded mode, an application opens a database from within the same JVM using JDBC. This is the fastest and easiest connection mode. The disadvantage is that a database may only be open in one virtual machine (and class loader) at any time. As in all modes, both persistent and in-memory databases are supported. There is no limit on the number of database open concurrently, or on the number of open connections.

 

-> JDBC를 이용하여 같은 JVM위에서 열린다. 단점은 하나의 가상머신에서만 열린다는 것이다.

DB가 몇개가 열리건 상관이 없다. 영구DB, 인메모리DB 모두 지원한다.

 

In embedded mode I/O operations can be performed by application's threads that execute a SQL command. The application may not interrupt these threads, it can lead to database corruption, because JVM closes I/O handle during thread interruption. Consider other ways to control execution of your application. When interrupts are possible the async: file system can be used as a workaround, but full safety is not guaranteed. It's recommended to use the client-server model instead, the client side may interrupt own threads.

 

-> I/O 작업은 SQL 명령을 실행하는 스레드에 의해 수행된다.

어플리케이션은 스레드를 중단하지 않을 수 있으며, 데이터베이스 손상을 초래한다.

그 이유는 스레드 중단 중에 JVM이 I/O 핸들을 닫기 때문이다.

인터럽트가 가능한 경우 비동기: 파일 시스템을 해결 방법으로 사용할 수 있지만 완전한 안전은 보장되지 않는다.

따라서 대신하여 클라이언트-서버 모델을 사용하는 것이 좋을 수 있다.

클라이언트 측에서 자체 스레드를 중단할 수 있기 때문이다.


Server Mode

When using the server mode (sometimes called remote mode or client/server mode), an application opens a database remotely using the JDBC or ODBC API. A server needs to be started within the same or another virtual machine, or on another computer. Many applications can connect to the same database at the same time, by connecting to this server. Internally, the server process opens the database(s) in embedded mode.

 

-> 서버 모드를 사용할 때 어플은 JDBC 또는 ODBC API를 사용하여 DB를 원격으로 연다.

서버는 동일한 가상 시스템 또는 다른 가상 시스템 내에서 시작하거나 다른 컴퓨터에서 시작해야 합니다.

많은 응용프로그램이 이 서버에 연결하여 동일한 데이터베이스에 동시에 연결할 수 있습니다.

내부적으로 서버 프로세스는 데이터베이스를 내장 모드로 엽니다.

 

The server mode is slower than the embedded mode, because all data is transferred over TCP/IP. As in all modes, both persistent and in-memory databases are supported. There is no limit on the number of database open concurrently per server, or on the number of open connections.

 

-> 모든 데이터가 TCP/IP를 통해 전송되기 때문에 서버 모드는 내장 모드보다 느리다.

영구 데이터베이스와 인메모리 데이터베이스가 모두 지원됩니다.

서버당 동시에 열리는 데이터베이스 수에는 제한이 없습니다. 또는 열린 연결의 수에도 제한이 없다.

 


YAML 설정

 

Embedded 

spring:
	datasource:
		url: jdbc:h2:mem:testdb # in-memory 주소 설정
        username: sa
        password:
        driver-class-name: org.h2.Driver
    h2:
    	console:
        	enabled: true #in-memory 방식을 사용하는 경우 H2 콘솔을 사용할 것인지의 유무이다.

Servcer

spring:
	datasource:
    	url: jdbc:h2:tcp://localhost/~/test # Tcp, Server 모드 주소 설정
        username: sa
        driver-class-name: org.h2.Drive

 

 

 

'인프런수업 > JPA' 카테고리의 다른 글

JPA 기본  (0) 2022.05.13
JPA Repository - Query Method  (0) 2022.05.11
연속성 컨텍스트  (0) 2022.04.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함