Spring

MySQL 테이블 생성 및 스프링 db 연동

chadongmin 2023. 8. 24. 15:18

1.  MySQL 워크벤치를 사용하여 스키마 및 테이블 생성

테이블 생성

MySQL 워크벤치에 접속해서, 루트 계정으로 접속한다음 Library라는 스키마를 만들고 고객 테이블을 생성해준다. 

그리고 Spring과 연동할 커넥션에서 이 스키마를 기본 스키마로 사용하면 된다. 

테이블을 만들 때 요구사항에 보면 고객번호는 100000번에서 1씩 증가해야 하므로, 자동증가에 체크를 반드시 해주어야 한다.

 

계정에 스키마에 대한 권한 할당

그리고 중요한게 스프링과 연결할 계정이 루트 계정이 아니라면 방금 만든 테이블에 대한 권한을 모두 줘야한다. 그렇지 않으면 커넥션이 불가능하다. 

 

권한을 가진 계정으로 새로운 커넥션 생성

만든 Library에 대한 모든 권한을 chadongmin 계정에 주었다면, 새로운 커넥션을 만들 수 있다. 즉 chadongmin 계정으로 방금 만든 Library 스키마를 기본 스키마로 설정한 연결이 생성되는 것이다.

즉, 이 연결을 통해 Spring에서도 db에 접근 할 수 있는 것이다. 

 

2. Maven 의존성 주입

 Maven은 pom.xml이라는 파일을 통해 의존성을 관리한다. dependency라는 게 뭔지 잘 몰랐는데, 외부 API를 사용하기 위해서는 인스턴스가 주입되어야 한다. pom.xml파일의 dependency에 등록을 해놓으면 스프링이 외부 API의 객체를 주입시켜 줘서 개발자가 사용할 수 있도록 한다. db를 사용하기 위해서 jdbc와 mybatis의 의존성을 maven repository 사이트에서 복사해서 등록해주었다. 

3. root-context.xml 수정 및 Mapper.xml 생성

webapp - WEB-INF - spring - root-context.xml 파일에 jdbc 드라이버와 sqlSessionFactory 등  bean을 등록해주어야 한다. 

아이디와 비밀번호를 일치하게 입력하면 이제 Intellij에서도 쿼리 콘솔을 통해 db에 접근 할 수 있게 된다. 

 

그리고

resources 디렉토리 하위에 mapper라는 디렉토리를 만들고 그 안에 sql 쿼리문과 매핑하기 위한 Mapper.xml을 만들어준다. 

그리고 mybatis 설정파일인 mybatis.config.xml을 만들어준다. mybatis를 사용하면 namespace가 엄청 길기 때문에 쿼리문 작성할 때 많이 귀찮아지는데, mybatis-config.xml 파일에 Alias 태그 안에 namespace를 짧게 지정해주면 긴 namespace를 짧게 줄여서 사용할 수 있다. 

 

IntelliJ에서 MySQL로 만들었던 스키마와 연동에 성공한 모습이다. 

만들었던 회원정보에 대한 테이블도 잘 출력되는 모습이다. 


이상으로 MySQL로 스키마와 테이블을 생성했고, Maven에 jdbc 드라이버의 의존성을 주입하여 db와 연동까지 했다. 결과적으로 IntelliJ에서 db에 접근할 수 있게 되었다. 하지만 아직 자바로 sql문을 실행하기 위해서는 아주 복잡한 문법을 사용해야 하는데, mybatis를 사용하여 아주 간단하게 쿼리문을 실행할 수 있도록 할 예정이다. 그리고 실질적으로 CRUD를 수행하는 dao를 구현해서 메소드를 호출하면 쿼리문이 실행되도록 할 예정이다. 

 

'Spring' 카테고리의 다른 글

[JPA] 즉시로딩과 지연로딩  (1) 2023.11.08
[JPA]JPA 양방향 매핑  (0) 2023.10.31
예외처리 - Exception Handle  (0) 2023.10.28
[SpringBoot] BindException 해결법  (0) 2023.08.26
[Spring] Bean의 개념과 동작원리, Annotation  (0) 2023.07.27