본문 바로가기
Spring

[TIL] 231110 Spring Database연결하기, SQL, JdbcTemplate, JDBC

by studymode 2023. 11. 10.

SQL

- 데이터베이스를 조작하고 관리하는 언어

 

 

MySQL

- RDBMS (Relational Managemnet System)의 한 종류

- Spring과 궁합이 좋아 많이 사용

 

 

DDL

- Data Definition Language

  • CREATE: 새로운 데이터베이스 및 테이블 생성 // CREATE DATABASE 테이블이름;
  • ALTER: 데이터베이스와 테이블의 내용을 수정
  • DROP: 데이터베이스와 테이블을 삭제
  • TRUNCATE: 데이터베이스와 테이블을 삭제, 최초의 테이블이 만들어졌던 상태, 즉 컬럼값만 남김
CREATE TABLE memo //테이블 이름
(
  id bigint AUTO_INCREMENT      // 1씩 자동으로 증가하게 고유번호 생성
  title varchar(100) primaary key comment '제목',   // NOT NULL과 UNIQUE의 조건을 가짐
  content varchar(200) not null comment '내용'
  userId varchar(100) not null comment '사용자',
  foreign key(userId) refereces user(userId)
)

- PRIARY KEY: 기본키로 '유일하게 존재하는 값의 조합'을 설정

- FOREIGN KEY(FK): 다른 테이블에 의존하여 만든 키, 반드시 참조하는 테이블의 PK,UNIQUE조건이 설정된 열

 

 

 

데이터베이스에 값 넣기

  • INSERT
INSER INTO memo VALUES ('제목', '내용입니다', '홍길동');

 

 

 

 

JDBC

- Java Database Connectivity

- 어플리케이션 서버와 데이터베이스를 연결해 줌

- DB에 접근 할 수 있도록 Java에서 제공하는 API

 

 

 

JdbcTemplate 사용 방법

- application.properties에 DB접근 정보 작성

- build.gradle에 JDBC라이브러리 등록

- Data Soure에 MySQL에 데이터추가

- MySQL 데이터베이스에서 open default console에서 테이블 뼈대 만들기 (CREATE으로)

- DB연결이 필요한 곳에서 JdbcTemplate을 주입받아와 사용

private final JdbcTemplate jdbcTemplate;

public MemoRepository(JdbcTemplate jdbcTemplate){
        this.jdbcTemplate = jdbcTemplate;
    }

( 생성자와 파라미터를 통해 JdbcTemplate객체가 자동으로 넘어와 jdbctemplate변수에 저장됨)

 

- INSERT

String sql = "INSERT INTO memo (username, contents) VALUES(?, ?)";
	jdbcTemplate.update( sql, "Robbie", "오늘 하루도 화이팅!");