반응형
스프링 프로젝트 설정
pom.xml 설정
- pom.xml - dependencies 부분에 아래의 코드를 입력하여 의존성 추가
- spring-webmvc : mvc 디자인 패턴 관련
- mysql-connector-java : mysql 연결 관련
- spring-jdbc : 스프링에서 자바로 데이터베이스 제어
- commons-dbcp : 데이터베이스의 다중 접속, 다중 처리
<!-- pom.xml -->
<dependencies>
<!-- Spring Web MVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.31</version>
</dependency>
<!-- Spring JDBC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.18</version>
</dependency>
<!-- DataSource -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
DataSource 설정
root-context.xml 설정
- (Package Explorer) src/main/resources 우클릭 - New - Other
- XML File - Next
- File name : 'root-context.xml' - Finish
- 생성한 root-context.xml 파일에 아래의 코드 입력
- context:property-placeholder : 지정한 경로의 환경설정 파일 호출
- ${호출한 환경설정 파일의 변수} : 다른 properties에서 지정한 변수의 값을 호출
- 이는 직접적인 정보 노출을 방지하기 위하여 권장
- 원한다면 그대로 하드코딩해도 되지만 권장하지 않음
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd">
<!-- 설정 불러오기 -->
<context:property-placeholder location="classpath:config/jdbcConfig.properties"/>
<!-- DataSource 설정 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- DataSource mysql db 예시
<bean id ="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://주소:포트/데이터베이스?serverTimezone=Asia/Seoul"/>
<property name="username" value="아이디"/>
<property name="password" value="비밀번호"/>
-->
</beans>
환경 설정 파일 생성
환경 설정 파일을 굳이 생성하는 이유?
보안의 이유도 있지만 모든 설정 정보를 한 눈에 보기 쉽게 하기 위함도 있음
- src/main/resources 우클릭 - New - Folder
- root-context의 <context:property-placeholder location>에서 지정한 경로 폴더 생성
classpath:config/jdbcConfig.properties - config 폴더 생성
- 지정한 경로의 파일 생성
classpath:config/jdbcConfig.properties - config 폴더 우클릭 - New - File
- File name : 'jdbcConfig.properties' - Finish
- jdbcConfig.properties 파일에 아래의 코드를 붙여넣어 환경에 맞는 정보 입력
- jdbc.url
- jdbc:mysql://데이터베이스주소:포트/데이터베이스명
- jdbc.username
- jdbc.url에서 설정한 데이터베이스의 사용자 이름
- jdbc.password
- jdbc.url에서 설정한 데이터베이스의 사용자 비밀번호
- jdbc.url
- 참고 : 당연히 사용자를 새로 만드는 것이 아닌, 해당 데이터베이스에서 접속, 제어가 가능한 사용자여야 함
<!-- jdbcConfig.properties -->
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://URL:3306/DATABASE?serverTimezone=Asia/Seoul
jdbc.username= USERNAME
jdbc.password= PASSWORD
MySQL Workbench 데이터베이스 설정
데이터베이스(스키마) 생성
- 스프링에서 설정한 'jdbcConfig.properties'd의 jdbc.url 정보의 데이터베이스명과 동일하게 생성
- 개인의 환경에 따라 다르게 설정 할 수 있음. 포스팅에서는 testdb로 설정.
테이블 생성
- 생성된 데이터베이스의 Tables 우클릭 - Create Table
- 간단한 테스트를 위한 테이블의 컬럼 설계 및 생성
- 컬럼 설계
- id : 인덱스
- name : 사용자 이름
- address : 사용자의 거주 지역
- 테이블 생성 (Apply)
- 컬럼 설계
- 테이블 생성 확인
반응형