DTO : Data Transfer Object의 약자 데이터 전송 및 이동을 위해 생성되는 객체.
계층 간 데이터 교환을 위한 객체
DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 된다.
DBMS란? Database Management System의 약자 DB를 관리하고 윤영하는 소프트웨어
RDBMS : Relational DBMS 관계형 데이터베이스
SQL : Structured Query Language 의 약자 RDBMS에서 사용되는 언어
| 종류 | 특징 | 예시 |
|---|---|---|
DDL(Data Definition Language) | 데이터 정의 언어, 테이블이나 데이터 관계의 구조를 정의하는데 사용 | CREATE, ALTER, DROP, TRUNCATE, RENAME (AUTO COMMIT 주의) |
DCL(Data Control Language) | 데이터 제어 언어, 데이터의 사용 권한을 관리하는데 사용 | GRANT, REVOKE |
DML(Data Manipulation Language) | 데이터 조작 언어, 데이터의 검색, 삽입, 수정, 삭제 등의 작업을 위해 사용 | SELECT, INSERT, UPDATE, DELETE |
🔔 제약조건
CREATE TABLE TEST
(
ID NUMBER AUTO_INCREMENT UNIQUE PRIMARY KEY, -- AUTO_INCREMENT 컬럼의 값이 중복되지 않게 1씩 자동으로 증가, UNIQUE : 서로 중복된 값 가질 수 X, PRIMARY KEY : 해당 필드를 PRIMARY KEY로 지정
NAME VARCHAR(50) NOT NULL -- 해당 필드 NULL 값 저장 금지
)
CREATE TABLE TEST2
(
ID2 NUMBER,
NAME2 VARCHAR(50),
ORIGIN_ID NUMBER
FOREIGN KEY(ORIGIN_ID)
REFFERENCES TEST(ID) ON UPDATE CASCADE --ON DELETE CASCADE
)
🐥ON DELETE/UPDATE CASCADE : 부모테이블의 변경은 자식에 영향이 끼치지만 자식테이블의 변경은 부모에 영향을 끼치지 않는다.
mysql -u root -p -- cmd 창을 통한 mysql 접속
CREATE DATABASE academy; -- 데이터베이스 생성 명렁여
show databases; -- 데이터 베이스 확인 명령어
use academy; -- 데이터베이스 이동 명령어
JDBC : Java Database Connectivity Java 기반 애플리케이션의 데이터를 데이터베이스에 저장 및 업데이트하거나, 데이터베이스에 저장된 데이터를 Java에서 사용할 수 있도록 하는 자바 API이다.
한줄요약하면 JDBC 는 JAVA 랑 DB랑 연결해주는 친구!
데이터베이스 접근의 표준화를 위해서! 데이터베이스는 여러 종류가 있다, 각각 데이터베이스마다 SQL를 전달하거나 결과를 응답받는 방법들이 다르고 데이터베이스의 종류는 수십 개가 존재하는데 JDBC가 존재하기 전에는 이런 데이터베이스마다 존재하는 고유한 API를 직접 사용 했다고 한다. 이에 따라 개발자는 기존 DB를 다른 DB로 교체해야 하는 경우 DB에 맞게 기존의 코드를 모두 수정해야했다고 한다.
따라서 표준이 필요했고, JDBC 표준 인터페이스가 등장하게 됐다!

🐥 build.gradle mysql driver 추가
dependencies {
// MySQL driver추가
implementation 'mysql:mysql-connector-java:8.0.28'
implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
}
🐥 application.properties db connection 정보 추가
spring.datasource.url=jdbc:mysql://localhost:3306/memo
spring.datasource.username=root
spring.datasource.password= {password}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver