기본 구조
Junit5 사용하여 연결 테스트
@ContextConfiguration(locations={"file:src/main/webapp/WEB-INF/spring/PostgreSQL-context.xml"})
public class PostgreSQLConnectionTest {
@Autowired
private DataSource ds;
@Test
public void testConnection() throws Exception {
try (Connection con = ds.getConnection()) {
System.out.println("\nDBConnection 있냐? : " + con + "\n");
} catch (Exception e) {
e.printStackTrace();
}
}
}
@ContextConfiguration(locations={"file:src/main/webapp/WEB-INF/spring/**/PostgreSQL-context.xml"})
public class PostgreSQLMybatisTest {
@Autowired
private SqlSessionFactory sqlFactory;
@Test
public void testFactory() {
System.out.println("\nSqlSessionFactory 생성되냐? : " + sqlFactory);
}
@Test
public void testSession() throws Exception {
try (SqlSession session = sqlFactory.openSession()) {
System.out.println("\nSqlSessionFactory 생성이되면 sqlSesion도 생성되겟지 : " + session + "\n");
} catch (Exception e) {
e.printStackTrace();
}
}
}
xml 설정
<?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:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:/jdbc.properties" />
<property name="fileEncoding" value="UTF-8" />
</bean>
<!-- JDBC-PostgreSQL -->
<bean id="PostgreSQLDataSource" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.postgis.url}" />
<property name="username" value="${jdbc.postgis.username}" />
<property name="password" value="${jdbc.postgis.password}" />
<property name="initialSize" value="${jdbc.postgis.initialSize}" />
<property name="maxActive" value="${jdbc.postgis.maxActive}" />
<property name="maxIdle" value="${jdbc.postgis.maxIdle}" />
<property name="minIdle" value="${jdbc.postgis.minIdle}" />
<property name="maxWait" value="${jdbc.postgis.maxWait}" />
</bean>
<!-- mybatis SqlSessionFactoryBean -->
<bean id="PostgreSQLSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="PostgreSQLDataSource"></property>
<property name="configLocation" value="classpath:/mybatis-config.xml"></property>
<property name="mapperLocations" value="classpath:/mybatis/**/*.xml"></property>
</bean>
<!-- mybatis -->
<bean id="PostgreSQLSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="PostgreSQLSessionFactory"></constructor-arg>
</bean>
</beans>
pom.xml
<!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- jacson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.10.0</version>
</dependency>
<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!-- Srping JDBC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- postgre driver -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4-1204-jdbc4</version>
</dependency>
<!-- Spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- MyBatis-Spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
jdbc.properties
jdbc.driverClassName=org.postgresql.Driver
jdbc.postgis.url=jdbc:postgresql://127:0.0.0.1/test
jdbc.postgis.username=test1234
jdbc.postgis.password=1234
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>
<typeAliases>
<typeAlias type="kr.co.test.DTO.ParameterDTO" alias="parameterDTO"/>
</typeAliases>
</configuration>