오늘은 HeidiSQL을 이용하여 MySQL DB를 생성해보고 MyBatis을 이용해 Java Spring Boot와의 연동을 해보겠습니다.
- https://www.heidisql.com/download.php 에 가서 HeidiSQL을 다운받습니다.
- 프로그램을 실행시키고 호스트명, 사용자, 암호, 포트를 맞춰 접속합니다.
- 새로운 데이터베이스를 만들어 줍니다.
- 새로운 테이블을 만들어 줍니다
- 새 테이블에 컬럼을 만들어 줍니다. 컬럼 생성 후 아래쪽에 저장을 눌러주세요.
- 테스트할 더미 레코드를 삽입해 줍니다.
1.Application.java 파일에 SqlSessionFactory, SqlSessionTemplate Bean을 추가해 주세요
package program; import javax.sql.DataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.annotation.Bean; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.web.servlet.view.json.MappingJackson2JsonView; @MapperScan(basePackages = "program") @SpringBootApplication public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Bean public SqlSessionFactory sqlSessionFactory(DataSource ds) throws Exception { SqlSessionFactoryBean factory = new SqlSessionFactoryBean(); factory.setDataSource(ds); factory.setConfigLocation(new PathMatchingResourcePatternResolver().getResource("classpath:/mybatis/mybatis-config.xml")); factory.setMapperLocations( new PathMatchingResourcePatternResolver().getResources("classpath:/mappers/*.xml") ); return factory.getObject(); } @Bean public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory factory) { return new SqlSessionTemplate(factory); } @Bean MappingJackson2JsonView jsonView(){ return new MappingJackson2JsonView(); } }MappingJackson2JsonView는 model and veiw가 rest api처럼 사용될 수 있게끔 도와주는 bean입니다.
- application.properties에 DB연결 정보를 세팅해 줍니다.
- controller를 작성해 줍니다.
- Mapper를 작성해 줍니다.
@Repository 어노테이션을 통해 해당 클래스가 mapper임을 명시해줍니다.
- Mapper.xml을 작성해 줍니다.
mapper 의 namespace를 지정해 줌으로써 어떤 mapper.java와 mapping될 것인지 지정해 줍니다.
<select>를 통해 select 문을 작성하고 id는 mapper.class의 이름과 똑같이 맞춰줍니다.resultType은 해당 쿼리문이 조회된 후 결과의 반환 자료 타입입니다. alias를 사용할 수 있으며 다음과 같이 mybatis-config.xml에서 typeAliases 설정을 통해 지정해 줄 수 있습니다.
mybatis-config.xml의 위치는 src/main/resources/mybatis에 생성하여 줍니다.
- postman을 통해 DB통신을 테스트합니다.
https://www.postman.com/ 에서 다운받으 실 수 있습니다.
1.설치 후 Add Request를 통해 새로운 Request를 생성해 줍니다.
2.method 방식을 맞춰주고(get 또는 post 등) url을 requestmapping과 맞춰주고 send를 보내면 다음과 같이 DB와 통신 후 결과를 반환하게 됩니다.
이상으로 DB 생성과 연동까지 알아봤습니다.