반응형
Mybatis는 SQL문을 더욱 편리하게 처리하기 위해서 사용하는 프레임워크 이다.
SQL 매핑 프레임워크로 분류 된다.
Mybatis 객체
SQLSession : SQLSession을 통해서 Connection을 생성하거나 원하는 SQL을 전달하고 결과를 리턴받는다.
SQLSessionFactory : 내부적으로 SQLSession을 만들어 낸다.
pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework-version}</version>
</dependency>
|
cs |
RootConfig.java
1
2
3
4
5
6
7
8
|
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception{
SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource());
return (SqlSessionFactory) sqlSessionFactory.getObject();
}
|
cs |
DataSourceTests 코드에 테스트를 추가하여 작동을 확인한다.
1
2
3
4
5
6
7
8
9
10
11
12
|
@Test
public void testMybatis(){
try(SqlSession session = sqlSessionFactory.openSession();
Connection con = session.getConnection();){ log.info(session);
log.info(con);
}catch(Exception e){
Assert.fail(e.getMessage());
}
}
|
cs |
|
|
SqlSessionFactoryBean을 이용해서 SqlSessionFactory을 생성하고 Connection을 테스트하는 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
|
package org.onett.mapper;
import org.apache.ibatis.annotations.Select;
public interface TimeMapper {
@Select("SELECT sysdate FROM dual")
public String getTime();
public String getTime2();
}
|
cs |
RootConfig.java 파일에 MapperScan을 추가해준다.


1
2
3
4
5
6
7
8
9
10
11
12
|
<?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="org.onett.mapper.TimeMapper">
<select id="getTime2" resultType="string">
SELECT sysdate FROM dual
</select>
</mapper>
|
cs |
TimeMapper 인터페이스를 만들고 TimeMapper.xml을 연동시킨다.
여기서 <mapper namespace = ?>를 정확하게 설정해 준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package org.onett.persistence;
import lombok.Setter;
import lombok.extern.log4j.Log4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.onett.mapper.TimeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {org.onett.config.RootConfig.class})
@Log4j
public class TimeMapperTests {
@Setter(onMethod_ = @Autowired)
private TimeMapper timeMapper;
/* @Test
public void testGetTime(){
log.info(timeMapper.getClass().getName());
log.info(timeMapper.getTime());
}*/
@Test
public void testGetTime2(){
log.info("getTime2");
log.info(timeMapper.getTime2());
}
}
|
cs |
테스트를 진행하여 본다.
**org.springframework.beans.factory.BeanCreationException:
dataSource 관련 에러가 발생하면 library에 jdbc가 설정이 잘 되어 있는지 확인해 본다.
반응형
'Spring > IntelliJ 설정' 카테고리의 다른 글
[IntelliJ] 05 - 파일 업로드 설정 (0) | 2020.07.08 |
---|---|
[IntelliJ] 한글설정 (0) | 2020.07.08 |
[IntelliJ] 04 - Controller (0) | 2020.07.08 |
[IntelliJ] 02 - 인텔리제이 데이터베이스 연동 (0) | 2020.07.06 |
[IntelliJ] 01 - 인텔리제이 환경설정 (0) | 2020.07.06 |