Programming/스프링(spring) - Enterprise

8. 스프링(spring)/ Mysql-Mybatis(DB연동)

esoog Polaris 2023. 7. 18. 14:40
반응형

# pom.xml파일 depenency추가

 

<!-- mysql db -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.25</version>
</dependency>

<!-- org.mybatis/mybatis 동적인 데이터 처리 프레임워크. 보다 효율적 -->
<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>
    <scope>test</scope>
</dependency>

* MyBatis는 스프링과 함께 사용하기 좋은 ORM(Object-Relational Mapping) 프레임워크입니다.
MyBatis는 SQL 매핑을 통해 데이터베이스 쿼리와 자바 객체 간의 매핑을 단순화합니다.
스프링에서 MyBatis를 사용하면 SQL을 XML 또는 어노테이션을 통해 정의하고, MyBatis가 해당 SQL을 실행하여 결과를 자바 객체로 매핑합니다.
MyBatis는 동적 쿼리 작성, 트랜잭션 관리, 성능 튜닝 등의 기능을 제공하므로, 데이터베이스와의 상호작용을 보다 편리하게 수행할 수 있습니다.

 

JDBC(Java Database Connectivity)는 자바 프로그램에서 데이터베이스와 연동하기 위한 표준 인터페이스입니다.
스프링은 JDBC를 사용하여 데이터베이스에 접근하고 쿼리를 실행하는 데 활용합니다.
JDBC를 사용하면 데이터베이스에 접속하고 연결을 관리하며, SQL 쿼리를 실행하고 결과를 처리할 수 있습니다.
따라서, 스프링에서 MySQL을 사용할 때는 JDBC를 사용하여 MySQL과의 연결을 수행하는 것이 일반적입니다.

 

스프링에서 MySQL을 사용할 때, JDBC와 MyBatis를 함께 활용하면 데이터베이스와의 상호작용을 편리하게 처리할 수 있고, ORM 기능을 통해 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

 

 

 

 

# src/test/java 에서 새로운 패키지내 자바 파일 만들어서 테스트(선택사항)

 

package ;

import java.sql.Connection;
import java.sql.DriverManager;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;


@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"file:src/main/webapp/WEB-INF/spring/root-context.xml"})
public class mysqlDB {
 

  final String DRIVER = "com.mysql.jdbc.Driver";
  final String URL = "jdbc:mysql://127.0.0.1:3301/DBname";
  final String USER = "root";
  final String PASSWORD = "*";
  
  @Test
  public void mariaTest() throws Exception{
   Class.forName(DRIVER);
   
   try(Connection con = DriverManager.getConnection(URL, USER, PASSWORD)){
    System.out.println(con);
   } catch(Exception e) {
    e.printStackTrace();
   }
  }
}

 

화면 마우스 오른쪽 - Run As - Junit test

성공시, 이렇게 출력된다.

 

 

 

 

# 스프링과 mysql 사용 연동 설정

 

 

root-context.xml파일에서 가운데 아래, Namespaces클릭 후, 체크 사항 확인.(beans, context, jdbc, mybatis-spring)

* 없다면, 프로젝트 마우스 오른쪽 - Maven - Update 해주면 된다.

 

그 이후에 다시 가운데 아래, Source 클릭 후, 아래 쪽에 코드 추가

<bean
 class="org.springframework.jdbc.datasource.DriverManagerDataSource"
 id="dataSource">
 <property name="driverClassName" value="com.mysql.jdbc.Driver" />
 <property name="url" value="jdbc:mysql://127.0.0.1:3301/DbName" />
 <property name="username" value="root" />
 <property name="password" value="asdf" />
</bean>


<bean id="sqlSessionFactory"
 class="org.mybatis.spring.SqlSessionFactoryBean">
 <property name="dataSource" ref="dataSource" />
 <property name="configLocation" value="classpath:/mybatis-config.xml" />
 <property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml" />
</bean>

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

 

 

 

 

# mybatis.xml 생성 및 설정

src/main/resources 에

위에서 bean 객체로 설정한 이름, mybatis-config.xml로 파일을 생성 한다.

그리고 기본 코드 작성.

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

</configuration>

 

 

 

 

# mybatis의 sql 매핑 기능을 사용하기 위한 매퍼 생성

src/main/resources 에 mappers란 폴더 생성 후,

매퍼 하나를 예를 들어 만든다면, boardMapper.xml로 생성.

그리고 기본 코드 작성.(네임스페이스 커스텀으로 매퍼 분류)

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mvc.mappers.board">

</mapper>

 

 

 

 

# 자, 이제 프로젝트 - Run As - Run on Server 하면, 화면이 두두등장!

* 초기 페이지 url은 서버에서 설정 가능.

 

 

서버 Tomcat 더블클릭 - 가운데 아래 Modules 클릭 후, Path를 Edit으로 변경하면 된다. root경로

 

 

728x90