스프링 MYSQL 연동 방법 (마이바티스)
오늘은 원래 어드민페이지 올리려고했는데
요즘 새롭게 만들고 있는사이트에 배포까지 하려고한다.
그래서 카페24를 통해 하려고 하고 무료여야해서 mysql을 쓰게되었다
하지만 나는 한번도 mysql을 써본적이 없다.
오라클만 써보아서 .. 음 .. 오라클이랑 대충 비슷하겟거니 하면서 일단 깔앗다.
https://dev.mysql.com/downloads/mysql/
MySQL :: Download MySQL Community Server
Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS Source Code Select OS Version: All Windows (x86
dev.mysql.com
일단 여기서 mysql을 설치해주면
워크벤치를 설정해준다.
오라클이랑 다른점은
오라클은 유저가 곧 데이터 베이스(스키마)라는 것인데.
mysql은 아니었다.
나는 유저 root를 만들고 응? 여기서 테이블을 어떻게 만들어야하지?? 이랫다가
바보였다. .
스키마 > 테이블 > 컬럼
이렇게 스키마 안에 테이블이 있는것이다.
먼저 워크 벤치에서 스키마 부터 만들자
대략 요기서 스키마 부터 만들고 나면
이렇게 recipe_db라고 생겼다!!
그럼 일단 mysql은 준비가 다된 것이다.
이제 이클립스로 넘어가보자
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!-- MyBatis 3.4.1 -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!-- MyBatis-Spring -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!-- Spring-jdbc -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Spring-test -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Mybatis log -->
<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
이렇게 우선 pom.xml에다 디펜던시를 등록해주자
그럼 쓸 수 있는 환경은 끝낫다.
아 맞다 나는
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.3.1</version>
</dependency>
커넥션 풀로 히카리CP를 썻다. 이게 제일 익숙하다
그 후 root-context.xml에서 커넥션 풀 설정을 해주자
<!-- 히카리 커넥션 DB 설정 -->
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/디비 이름(스키마이름)?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true" />
<property name="username" value="mysql 아이디" />
<property name="password" value="mysql 비밀번호" />
</bean>
<!-- 위에 설정한 DB정보를 데이터소스 객체에 주입 -->
<bean id="ds" class="com.zaxxer.hikari.HikariDataSource">
<constructor-arg ref="hikariConfig" />
</bean>
을 설정 해주자
그리고 아까 확인한 junit으로 테스트를 해보자 :)
나는 테스트페이지에 testVegan 이라는 클래스를 생성 했다.
package com.vegan.recipe;
import java.sql.Connection;
import java.sql.DriverManager;
import org.junit.Test;
public class testVegan {
private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/recipe_db?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true";
private static final String USER = "recipe";
private static final String PW = "********";
@Test
public void testConnection() throws Exception{
Class.forName(DRIVER); try(Connection conn = DriverManager.getConnection(URL, USER, PW)){
System.out.println(conn);
} catch (Exception e) {
e.printStackTrace();
}
}
}
테스트 코드는 상단 과 같으며
결과는 성공 했다 .
아 그리고.. 테스트와 루트xml에 들어가는 url이 살짝 다르니 참고 바란다.
xml에서는 & 인식할 수가 없어
&을 사용하였다.
이렇게 해서 매퍼를 연결시켜 주면 끝
서버를 올려보면
이렇게 내가 만든 웹페이지가 뜬다
mysql 혼자 처음부터 공부하니 한 4시간 정도 걸려서 여기 까지온거같다.
내가 한 코드를 참고 바라며
나중에 또 프로젝트 할때 참고 해야겠다.
https://github.com/MoonSeokHyun