spring boot + mySQL _ MyBatis

Chapter03_MySQL_yml

 

new starter project > 설정

pom.xml에 tomcat, jstl dependecy 추가

 

application.yml 생성후 application properties 안에 있는 내용을 작성해주면 된다.

 

STS 설정 DevTools 빠져서 들어가니까 따로 넣어줘야함 >

MySQL work bench >

 

'Database > Mongd' 카테고리의 다른 글

MySQL 설치  (0) 2022.07.11

검색창에 mySQL Download서치

mysql download

MySQL Community (GPL) Downloads

MySQL Installer for Windows

No thanks Default > next, yes! > Execute > next

product Configuration 건드릴거 없이 next > next > Use Legacy Authentication Method >

 

 

Port#

MySQL por t 3306

Oracle Port 1521

React 3000

Tomcat 8080

 

> Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)

> Accounts and Roles

> 관리자 계정 root / 1234  & 사용자 계정은 사용 안함.

> Next > Next > Execute > FInish > next MqSQLRouter Config 로 돌아옴

> 다시 Finish > product config 에서  next >

다음

 

 

 

 

 

아까 지정했던 root 비밀번호 입력하고 서버 테스트 한다.

아래 화면 뜨면, 한번 더 Execute 하고 Finish

설치 끝난후 MySQL Workbench 구동된 화면 

<workbench>

1. DB 구동 연결 : connect to Database 

2. Database : oracle 에선s xe를 제공, mysql : mydb 생성 #CreateSCHEMA 'mydb' default char

 

 

 

store in vault

store in vault 클릭 후 비밀번호 입력 -> Ok 클릭

 

 

2. Database : oracle 에선s xe를 제공, mysql : mydb 생성 #CreateSCHEMA 'mydb' default char (좌측상단 원통형 클릭)

-> apply -> apply -> Finish

schema 설정 utf-8 / utf_bin

 

use mydb 명령어 cntl + enter 결과.

'Database > Mongd' 카테고리의 다른 글

MySQL Spring boot 연결하기  (0) 2022.07.12

Idea에 정리한 myBatis working procedure 리마인드.

 

(0) config.xml로 connection pool 생성 해준 후, mapper.xml 관련 정보를 포함시켜준다.

(1) UserMain 사용자 입력 받기

public void menu() {
		UserService userService = null;
		Scanner scan = new Scanner(System.in);
		int num = 0;
		
		while(true) {
			System.out.println();
			System.out.println("*************");
			System.out.println("       1. 입력");
			System.out.println("       2. 출력");
			System.out.println("       3. 수정");
			System.out.println("       4. 삭제");
			System.out.println("       5. 검색");
			System.out.println("       6. 끝");
			System.out.println("*************");
			System.out.print("    번호 : ");
			num = scan.nextInt();

 

(2) UserService로 넘어간다. 

 

UserService 는 각 메서드를 가진 insert, delete, search, selectservice 자바 페이지의 인터페이스가 들어간다.

- mvc에서 servlet 쓰다오니까 헷갈린다. usermain -> userservice -> userinsertservice -> userDAO 순이다.

package user.service;

public interface UserService {
	public void excute();
}

(3) UserInsert/Delete/Update/SearchService 

 

UserMain에서 사용자 입력값은 else 조건문으로 받았고, DAO를 통해 database에 값을 저장시킨다.

각 service 클래스의 execute를 불러와서 실행시킨다.

public class UserInsertService implements UserService {

	@Override
	public void excute() {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("이름 :");
		String name = scan.next();
		
		System.out.print("아이디 :");
		String id = scan.next();
		
		System.out.print("비밀번호 :");
		String pwd = scan.next();
		
		//name, id pwd를 UserDTO에 담기
		UserDTO userDTO = new UserDTO();
		userDTO.setName(name);
		userDTO.setId(id);
		userDTO.setPwd(pwd);

		//DB
		UserDAO userDAO = new UserDAO();
		userDAO.write(userDTO);
		
		//응답
		System.out.println("데이터를 저장하였습니다.");
	}

}

 

(4) Data access object 구동 방식.

DB 직접 접근 안하고 간접적으로 datasource에 요청하는것 확인

	public UserDAO() {
		try {
			Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); // src 라는 말은 default로 설정되어있다
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

 

 

'Database > myBatis' 카테고리의 다른 글

Core Idea.  (0) 2022.05.25

myBatis - Software Framework.

framework 란, 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조를 말한다. 

myBatis는 그중에서도 ORM으로 분류되는데 ORM은 Object Relational Mapping의 약자로써 오브젝트와 관계형 데이터벵크의 데이터를 자동으로 매핑해주는 것으로 이해

 

 

1. 특징

 

(1)   쿼리문, 예외처리, 트랙잭션 관리들을 XM 형식으로 관리. XM은 확장자를 말한다. 

(2)   쉽고, 간단하고, 의존성 줄이기라는 세가지 목표를 갖음.

       sql문과 자바 코드 분리하여 자바 개발하는 쿼리문을 신경쓰지 않아도 된다.

(3)   SQL를 자바코드와 분리, SQL 문 수정이 있을때마다 자바를 변경/컴파일 하지 않아도 된다.

 

2. 설치

 

(1)   https://blog.mybatis.org 

 

The MyBatis Blog

A blog about the the MyBatis data mapper framework.

blog.mybatis.org

(2)   product -> 3.5.7 (필요한 버전) -> mybatis 3.5.7 download -> java_ee (필요한 폴더에 압축 풀기)

(3)   압축 해제한 폴더에 보면 파일 4가지가 들어있다. (License, mybatis, mybatis jarfile, notice) -> jarFile만 사용

(4)   사용 방법 :

eclipse에 자바 프로젝트 open -> lib파일을 만들어준다 -> ojdbc, jar, mybatis 세 개 파일을 넣어준다. 

-> 넣은 파일 세가지 스크롤해서  마우스 우클릭, Build path 설정해준다 ->reference libraries 생성된 것 보이면 설정완료

 

 

3. myBatis 작동 순서

UserMain -> UserService -> UserInsertService -> UserServie ->&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;userDAO / MVC 처럼 servlet을 거치지 않는다.

 

UserInsert Service -> userDAO ->userMapper.xml로 myBatis가 연결되는 모습

 

4. myBatis 환경설정 

 

mybatis-config.xml

 

(1) Connection Pool

=> 서버에 미리 Connection 만들어 놓는 것. 구동시 마다 켜지 않아도 되기 떄문에 시간적인 면에서 효율적이다.

=> driver, username, password 등 jsp header에 일반적으로 기입되었던 정보들을 의미함

 

(2) mapper.xml (sql) 정보를 포함하고 있어야 한다.

(3) 별칭 필요 / 이름이 너무 길다면 짧게 만들 수 있다.

(4) 메모리의 크기를 조정할 수 있다.

 

 

5. myBatis 구조 

(1) myBatis에 접근하기 위해선 sqlSession 객체가 필요하다

(2) SqlSessionFactory를 통해 sqlSession를 생성한다. => 일반적으로는 DAO 에서 sqlSession을 생성해주면 된다.

 

6. 데이터를 꺼내오는 과정

 

(1) dataSource를 통해서 data들을 꺼내온다.

dataSource는 은행 직원이라고 생각하면된다. 직접 DB에 접근은 못하지만 간접적으로, dataSource에 요청되고

dataSource가 DB접근후 데이터를 꺼내온다.

 

7. myBatis Mapper Interface 

- 를 통해서 DB접근

basic structure below

 

'Database > myBatis' 카테고리의 다른 글

myBatisTest / drill  (0) 2022.05.26

+ Recent posts