MySQL과 MyBatis 설정을 위해 root-context.xml에서 Namespaces로 이동
다음과 같이 체크 xml 태그를 위한 설정이다.
MySQL 연동
<!-- DataSource 설정 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/scott?"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
다시 Source창으로 돌아와서 DataSource 설정을 한다.
*DataSource를 이용하여 MySQL 연결을 좀 더 간단하게 할 수있다!
root-context.xml에서 설정을 다 끝냈으니 이제 MySQL이 연결되었는지 테스트 코드를 돌려보자`ㅅ'!
DataSourceTest.java 클래스(MySQL 연결 테스트 코드)를 하나 생성하자.
[DataSourceTest.java]
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
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/*.xml"})
public class DataSourceTest {
@Autowired //spring 전용, @Inject : 자바/spring, @Resource : 이름으로 연결
private DataSource dataSource;
@Test
public void testConn() {
try {
Connection conn = dataSource.getConnection();
System.out.println(conn);
System.out.println("연결성공!");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
[Run As]-[JUnit Test]로 실행
연결성공!
MyBatis 연동
<!-- SqlSessionFactory 객체 생성 -->
<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/**/*.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
</bean>
root-context.xml에서 SqlSessionFactory 객체를 생성해준다.
mybatis가 연결되었는지 테스트 코드를 돌려보자`ㅅ'!
마찬가지로 test폴더에 MybatisTest.java 생성
[MybatisTest.java]
import javax.inject.Inject;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
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)
//속성 경로에 xml파일을 이용해 스프링이 로딩 된다.
@ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/spring/**/root-context.xml" })
public class MybatisTest {
//위에서 스프링이 정상적으로 동작할 경우 스프링이 생성해서 주입해준다.
//root-context.xml 파일에서 설정한 SqlSesiionFactoryBean설정에 문제가 있었다면 이 코드에서 에러가 발생한다.
@Inject
private SqlSessionFactory sqlFactory;
@Test
public void testFactory() {
System.out.println(sqlFactory);
}
@Test
public void tesSession() throws Exception {
try (SqlSession session = sqlFactory.openSession()) {
System.out.println(session);
} catch (Exception e) {
e.printStackTrace();
}
}
}
[Run As]-[JUnit Test]로 실행
MyBatis 설정
[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-config.xml(mybatis설정 파일)을 만들어준다.
여기서 typeAliases, environments, mappers를 관리한다.
[Mapper 파일 만들기]
src/main/resources 아래 mapper들을 관리하는 mappers폴더를 하나 만든다.
여기서 mapper파일을 만들고 관리한다.
namespace가 너무 길어서 위에다가 선언해두었다..
이런식으로 셋팅하고 사용하면 된다!
'프로젝트' 카테고리의 다른 글
[게시판 프로젝트] 게시판 레이아웃 작업 (0) | 2023.02.11 |
---|---|
[게시판 프로젝트]MySQL Workbench로 DB설계(스키마, 테이블 생성, ERD) (0) | 2023.02.03 |
[게시판 프로젝트] 문서화 작업(테이블 명세서, 요구사항 정의서, 잡리스트) (0) | 2023.02.02 |
[Spring/Eclipse/Maven] 프로젝트 셋팅하기(버전관리) (0) | 2023.01.28 |
[Spring/Maven] Maven(메이븐) 프로젝트 생성하기 (0) | 2023.01.27 |