일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- reactjs
- 리액트
- springboot
- 지족동
- Maven
- rest
- State
- 스프링부트
- 재정의
- Restful
- 다형성
- 둔산동
- Render
- SpringFramework
- react
- spring게시판
- mybatis
- 스프링게시판
- 자바
- mysql
- Stateless
- 스프링
- 컴포넌트
- Gradle
- 스프링 게시판
- 스프링프레임워크
- spring framework
- spring
- Ajax
- Java
- Today
- Total
Dev.GA
[SpringBoot] Mybatis, MySQL연동하기 본문
[SpringBoot] Mybatis, MySQL연동하기
오늘은 지난번 Gradle을 이용한 Spring Boot프로젝트 생성에 이어서
기본적인 WEB개발환경 구성을 위해 데이터베이스(Mybatis, MySQL)를 연동, 설정해보겠다.
1. build.gradle에 dependency 추가하기
먼저, MySQL과 Mybatis의 dependency를 추가하여 설치해야한다.
build.gradle파일에 지난번에 이어 관련 dependency를 추가해준다.
build.gradle
1 2 3 4 5 6 7 8 9 10 | dependencies { compile("org.springframework.boot:spring-boot-starter-web:2.0.1.RELEASE") compile("commons-collections:commons-collections:3.2") compile("org.springframework.boot:spring-boot-starter-jdbc:2.0.1.RELEASE") compile("mysql:mysql-connector-java:5.1.46") compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.1") compile("org.mybatis:mybatis-spring:1.3.1") compile("org.mybatis:mybatis:3.4.5") testCompile("junit:junit:4.+") } | cs |
위와 같이, 4~8번째라인)에 해당하는 노란색 부분을 추가한다. MySQL과 Mybatis관련 dependency이다.
프로젝트를 우클릭하여 [ Gradle(STS) ] -> [ Refresh Dependencies ] 를 선택해 추가한 dependency를 설치한다.
2. application.properties에 데이터베이스 정보(DataSource) 설정하기
MySQL과 Mybatis에 필요한 dependency를 설치했으면, 프로젝트와 데이터베이스를 연동하기 위한 설정정보를 application.properties에 입력해준다.
application.properties파일은 위처럼 "src/main/resources" 폴더경로에 위치해있다.
만약 application.properties파일이 없다면, 수동으로 생성해주어도 문제없다.
application.properties
1 2 3 4 | spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/데이터베이스명 spring.datasource.username=유저 spring.datasource.password=패스워드 | cs |
Maven프로젝트 시 데이터베이스 설정정보를 입력했던 것과 비슷하게 입력해주면 된다.
3. Mapper 인터페이스 작성
Spring Boot 프로젝트와 데이터베이스 간의 연동이 끝났으면, 간단히 연결이 잘 되었는지 테스트를 해보겠다.
1. 데이터베이스 테이블 생성하기
1 2 3 4 5 6 | CREATE TABLE `member` ( `code` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `team` varchar(255) DEFAULT NULL, PRIMARY KEY (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 | cs |
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 | package member.service; public class MemberVO { private String code = ""; private String name = ""; private String team = ""; public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTeam() { return team; } public void setTeam(String team) { this.team = team; } } | cs |
1 2 3 4 5 6 7 8 9 10 11 | package member.service.mapper; import java.util.List; import member.service.MemberVO; public interface MemberMapper { public List<MemberVO> selectMemberList() throws Exception; } | cs |
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="member.service.mapper.MemberMapper"> <select id="selectMemberList" parameterType="member.service.MemberVO" resultType="member.service.MemberVO"> select * from member </select> </mapper> | cs |
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 35 | package springboot; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import member.service.MemberVO; import member.service.mapper.MemberMapper; @Controller @EnableAutoConfiguration public class SampleController { @Autowired private MemberMapper mapper; @RequestMapping(value="/") @ResponseBody public String home() throws Exception{ List<MemberVO> list = mapper.selectMemberList(); for(int i=0; i<list.size(); i++){ System.out.println("name : " + list.get(i).getName()); System.out.println("team : " + list.get(i).getTeam()); } return "hello Gradle!"; } } | cs |
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 | package springboot; import javax.sql.DataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; @SpringBootApplication @MapperScan(value={"member.service.mapper"}) public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception{ SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource); Resource[] res = new PathMatchingResourcePatternResolver().getResources("classpath:mappers/*Mapper.xml"); sessionFactory.setMapperLocations(res); return sessionFactory.getObject(); } } | cs |
1 2 | spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useSSL=false | cs |
'Dev.Back-End > Spring Boot' 카테고리의 다른 글
[SpringBoot] 스프링부트(SpringBoot) 프로젝트 생성하기(with gradle) (1) | 2018.04.24 |
---|---|
[SpringBoot] 스프링부트(SpringBoot) 프로젝트 생성하기(with maven) (0) | 2018.04.24 |
[SpringBoot] 스프링부트(SpringBoot) 프로젝트 생성하기 (0) | 2018.04.24 |