버퍼로 쿼리문을 날리기 위함
1. xml로 데이터베이스연결
2.yml로 데이터베이스연결
3.자바파일로 데이터베이스 연결
3개다 가능하다
pom.xml 에 추가하는 방식
자바에서 dataSource 객체 -> 데이터 풀링 기법
미리 프로젝트 생성시 적용해도 된다
starter 는 스프링부트라고 생각하면 된다
다른 것들과 다르게 버전을 넣어야 한다
사용하는 이유
퍼시스턴스 (자바 오브젝트로 매핑)
Select 해서 받아오는 데이터를 rs를 자바오브젝트로 쉽게 변환
문서 확인
https://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/
autowired를 사용하지않고 매개변수에 넣으면
스프링부트가 자동으로 해당 객체를 찾아서 띄운다 (없으면 오류)
Member 객체로 자동으로 담아주는 역할
인터페이스로 만들기
datasource가 동시접속시 순차적 처리를 한다
메모리에 띄울때 @Bean이라는 어노테이션이 있으면 리턴값을 IOC로 등록해준다
(스프링 컨텍스트에 싱글톤 패턴으로 담아간다)
*.xml 이라고 쓴 이유는 여러테이블(객체)가 있을 수 있기 때문
https://github.com/codingspecialist/Springboot-MyBatis-Blog-V3
create user 'spring'@'%' identified by 'bitc5600';
GRANT ALL PRIVILEGES ON *.* TO 'spring'@'%';
create database spring;
use spring;
CREATE TABLE user(
id int auto_increment primary key,
username varchar(100) unique not null,
password varchar(100) not null,
email varchar(100),
profile varchar(200),
createDate timestamp
) engine=InnoDB default charset=utf8;
CREATE TABLE post(
id int auto_increment primary key,
title varchar(100) not null,
content longtext,
userId int,
createDate timestamp,
foreign key (userId) references user (id) on delete set null
) engine=InnoDB default charset=utf8;
CREATE TABLE comment(
id int auto_increment primary key,
userId int,
postId int,
content varchar(300) not null,
createDate timestamp,
foreign key (userId) references user (id) on delete set null,
foreign key (postId) references post (id) on delete cascade
) engine=InnoDB default charset=utf8;
설정을 자바파일로 만들어져야한다
스프링부트에서는 yml에서 설정해놓으면 자동적으로 자바코드로 변환된다
<-object <-rs
Controller - reopsitory - SQLSession - DataSource - DB(MySQL)
SQLSessionFactory가 SQLSession을 만든다
DataSource+매퍼파일등록(repository라는 클래스와 연결되어 있음)
SQLSession은 CRUD 함수를 가지고 있다
SQLSession은 데이터베이스에 연결 할 수 있는 유일한 객체
CREATE TABLE member(
id int auto_increment primary key,
username varchar(100) not null,
phone longtext
) engine=InnoDB default charset=utf8;
----
'Server > Spring Boot' 카테고리의 다른 글
spring boot // application.properties / application.yml // mybatis (0) | 2020.07.27 |
---|---|
spring boot // mustache 파일 (0) | 2020.07.27 |
spring boot // 서버오류시 해결법 (0) | 2020.07.27 |
spring boot // ViewResolver / jackson / RestController (0) | 2020.07.27 |
spring boot // PostMapping (0) | 2020.07.27 |