본문 바로가기
programming/SpringJava

자바 스프링 MySQL DB 데이터베이스 연결하기

by 개코 - 개발과 코딩 2021. 3. 29.

웹프로그래밍을 하는 것은 간단한 홈페이지부터 데이터베이스의 데이터를 관리하는 것까지 다양하다. 자바 스프링을 MySQL 에 연결하여 데이터베이스를 관리하도록 하자. 환경설정까지 적용한 템플릿까지 만들어 놓으면 나중에는 편하다.

자바 스프링 MySQL DB 데이터베이스 연결하기

자바 스프링과 MySQL을 연결하는 과정은 조금은 복잡하다.

복잡한 만큼 한번 만들어 놓으면 프로젝트는 계속 사용할 수 있다.

MySQL 을 연결하는 과정에 아래와 같으며, 상세한 것은 과정 아래에 하나씩 작성했다.

  1. mysql db 연결을 위한 메이븐 ( pom.xml ) 을 추가한다.
  2. 환경설정 root-context.xml 에 db 연결정보를 추가한다.
  3. 화면 테스트를 위한 jsp 파일을 추가한다.
  4. url 테스트를 위한 controller 추가한다.
  5. controller 를 실행한다.

mysql db 연결을 위한 메이븐 ( pom.xml ) 을 추가

메이븐을 이용해 db 연결에 필요한 외부 패키지를 가져와야 한다.

mysql 커넥터와 추후 쿼리사용을 위한 mybatis 까지 한꺼번에 가져오도록 한다.

아래의 내용은 찾아보면 많이 공유되어 있는 내용이기도 하다.

<!-- MySQL --> 
<dependency> 
	<groupId>mysql</groupId> 
	<artifactId>mysql-connector-java</artifactId> 
	<version>6.0.5</version> 
</dependency> 

<!-- MyBatis 3.4.1 --> 
<dependency>
	<groupId>org.mybatis</groupId> 
	<artifactId>mybatis</artifactId> 
	<version>3.4.1</version> 
</dependency> 

<!-- MyBatis-Spring --> 
<dependency> 
	<groupId>org.mybatis</groupId> 
	<artifactId>mybatis-spring</artifactId> 
	<version>1.3.0</version> 
</dependency> 

<!-- Spring-jdbc --> 
<dependency> 
	<groupId>org.springframework</groupId> 
	<artifactId>spring-jdbc</artifactId>
	<version>${org.springframework-version}</version> 
</dependency> 

<!-- Spring-test --> 
<dependency> 
	<groupId>org.springframework</groupId> 
	<artifactId>spring-test</artifactId> <version>${org.springframework-version}</version> 
</dependency>

root-context.xml 에 db 연결정보를 추가

mysql db 에 접속하기 위한 접속정보와 데이터를 가져오기 위한 datasource를 지정한다.

<!-- mysql DB Connection : localhost --> 
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
	<property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://127.0.0.1:3306/로컬데이터베이스명"></property> 
	<property name="username" value="root"></property> 
	<property name="password" value="로컬DB암호"></property> 
</bean> 

<!-- mybatis SqlSessionFactoryBean --> 
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<property name="dataSource" ref="dataSource"></property> 
</bean> 

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
	<constructor-arg ref="sqlSessionFactory"></constructor-arg> 
</bean>

url 테스트를 위한 controller 추가

url 을 실행시켜 테스트를 하기 위한 controller을 만든다

db를 연결한 후 연결한 정상적인 결과값을 받아오기 위함이기도 하다.

package com.crd.test;

import java.sql.Connection;

import javax.inject.Inject;
import javax.sql.DataSource;

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class Test_2_Controller {

	@Inject
    private DataSource vDataSource;
	
	/**
	 * MySQL 연결테스트
	 */
	@RequestMapping(value = "/testDBConnection", method = RequestMethod.GET)
	public String home(Locale locale, Model model) {
		
		Date date = new Date();
		DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
		
		String formattedDate = dateFormat.format(date);
		String vStringResult = "";
        
        try {
        	 
        	Connection vConnection = vDataSource.getConnection();
        	
            vStringResult = vConnection.toString();
 
        } catch (Exception e) {
            e.printStackTrace();
        }
		
		model.addAttribute("pageTitle", "DB 연결 테스트");
		model.addAttribute("connectionTime", formattedDate + " 데이터베이스 NOW() 시간");
		model.addAttribute("connectionResult", vStringResult + " 데이터베이스 연결 결과");
		
		return "testDBConnection";
	}
}

화면 테스트를 위한 jsp 파일을 추가

view 폴더에 jsp 파일을 만든다. 

파일명은 컨트롤러에 지정한 requestmapping 의 value 값과 동일하게 만든다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
  <head>
      <meta charset="UTF-8">
      <title>Home</title>
  </head>
  <body>
    <h1>${pageTitle}</h1>
    <P>  MySQL DB 연결  시간 ${connectionTime}. </P>
    <P>  MySQL DB 연결  결과 ${connectionResult}. </P>
  </body>
</html>

controller 를 실행한다.

서버를 실행시켜 실제 실행되는 모습을 보도록 한다.

정상적으로 실행되는 것을 볼 수 있다.



 

 

반응형

댓글