본문 바로가기
IT/Spring

Spring Boot - MyBatis 연동

by 최고영회 2018. 8. 29.
728x90
반응형
SMALL
1. pom.xml 필요한 dependency 설정 (jdbc, mybatis, mysql-connector)
...

	org.springframework.boot
	spring-boot-starter-jdbc


	org.mybatis.spring.boot
	mybatis-spring-boot-starter
	1.3.2


	mysql
	mysql-connector-java
	runtime

...




2. application.properties
spring.datasource.url=jdbc:mysql://IP:PORT/test?useUnicode=true&zeroDateTimeBehavior=convertToNull&characterEncoding=utf8
spring.datasource.username=아이디
spring.datasource.password=비밀번호
spring.datasource.driver-class-name=com.mysql.jdbc.Driver




3. DTO/VO Class 생성
@Alias("member")
@Getter @Setter
public class Member {
	private int idx;
	private String id;
	private String name;
	private String pw;
	
    @Override
	public String toString() {
		return new StringBuilder("{ idx : ").append(idx).append(", id : ").append(id).append(", name : ").append(name).append(" }").toString();
	}
}




4. member.xml src/main/resources 아래에 mapper 폴더를 만들고 member.xml 파일을 만든다.


	
	
	
	
	
	
		INSERT INTO test.members (idx, id, name, pw)
		VALUES(#{idx}, #{id}, #{name}, #{pw})
	
	
	
		DELETE FROM test.member 
		WHERE idx = #{idx}
	





5. Mapper Interface Dao, Repo 등의 이름을 많이 사용했는데 Spring Boot 에서는 Mapper 라는 이름을 많이 사용하는 듯 하다.
@Mapper
@Repository
public interface MemberMapper {
	
	List getMemberList();
	
	Member getMember(Member member);
	
	void insertMember(Member member);
	
	void deleteMember(Member member);
}




6. DatabaseConfig mybatis 에서 DTO/VO Class를 type-alias 로 쉽게 사용하기 위해 @Alias 를 scan 할 package 와 mapper.xml 들의 위치를 설정해 주면 된다.
@Configuration
public class DatabaseConfig {
	
	@Bean
	public SqlSessionFactory sqlSessionFactory(DataSource datasource) throws Exception {
		SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
		sqlSessionFactory.setDataSource(datasource);
		sqlSessionFactory.setTypeAliasesPackage("com.yhkim.study");
		sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mapper/*.xml"));
		return sqlSessionFactory.getObject();
	}
	
	@Bean
	public SqlSessionTemplate sqlSession(SqlSessionFactory sqlSessionFactory) {
		return new SqlSessionTemplate(sqlSessionFactory);
	}
}




7. Test
@SpringBootTest()
@RunWith(SpringRunner.class)
@Transactional
public class MemberServiceTest {

	@Autowired
	MemberMapper mapper;
	
	@Test
	public void getMemberList() {
		List list = mapper.getMemberList();
		for (Member member : list) {
			System.out.println("=====>"+member);
		}
	}
}



8. 결과 - 성공



source code : https://github.com/kimyounghoi/springboot/tree/master/firstproject 

728x90
반응형
LIST

'IT > Spring' 카테고리의 다른 글

Spring Boot - Context Path 설정 & Vue.js & Bootstrap 으로 화면 구현  (0) 2018.09.11
Spring Boot - Vue.js 연동  (2) 2018.08.30
Spring Security - 시작하기  (0) 2018.08.23
예외처리  (0) 2014.05.25
JUnit  (0) 2014.05.03