스프링 부트를 써본 뒤로 자바 설정에 익숙해져서 자바로 하려고했는데,
전부 다 자바 설정파일로 되어있는건 정말 다 한 개 도 찾을 수 없었다 ㅠ__ㅠ
전부 다 xml 아니면 xml+java 어흑 ,, 어찌저찌 부트했던 기억으로 해쑴!
pom.xml
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.0.7.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client --> <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> <version>2.2.6</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</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>
DataConfig.java
package kr.ac.smu.mybatis; 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.mybatis.spring.mapper.MapperFactoryBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.SimpleDriverDataSource; import kr.ac.smu.mybatis.mapper.CustomMapper; @Configuration @MapperScan(basePackages="kr.ac.smu.mybatis.mapper") public class DataConfig { @Bean public DataSource dataSource() { SimpleDriverDataSource dataSource = new SimpleDriverDataSource(); dataSource.setDriverClass(org.mariadb.jdbc.Driver.class); dataSource.setUsername(username); dataSource.setUrl("jdbc:mariadb://DBurl(or RDS 엔드포인트)/dbName"); dataSource.setPassword(패스워드); return dataSource; } @Bean public DataSourceTransactionManager transactionManager() { return new DataSourceTransactionManager(dataSource()); } @Bean public SqlSessionFactoryBean sqlSessionFactory() throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource()); return sessionFactory; } }
여기서 신경써야할 건 @MapperScan 이다.
경로로 매퍼를 생성할 패키지 경로를 적어준다.
Mapper.java
package kr.ac.smu.mybatis.mapper; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import kr.ac.smu.DTO.PreferenceDTO; @Mapper public interface CustomMapper { @Select("SELECT * FROM preference WHERE userId=#{userId} and customName=#{customName}") public PreferenceDTO selectByCustom(@Param("userId") String userId, @Param("customName") String customName); @Insert("INSERT INTO preference VALUES(#{pre.userId},#{pre.id},#{pre.flag},#{pre.custom},#{pre.customName}") public void insertPreference(@Param("pre") PreferenceDTO pre); }
보통 java config라고 써있고 sql문은 xml파일로 따로 쓰던데,
나는 개인적으로 이게 더 편한 것 같다. xml로 하면 인터페이스도 따로, sql문은 따로 해야하는데 이렇게 하면 그냥 한 클래스 파일에 가능함 !
DTO class는 사람마다 다를 것이므로 굳이 추가하지 앟겠다.
이제 이 상태로 외부에서 Mapepr autowired 한 뒤 해당 인터페이스를 실행하면 결과가 나온다!
aws ec2 sql 접속은 그렇게 커넥트 에러나서 생고생했는데 rds 로 바꾸니까 바로되더라 허무 ㅠ__ㅠ 뭐가 문제일까 훔
'개발 > Java & Spring ' 카테고리의 다른 글
[Springboot] SSL 인증 구현하기 - 개발일기 A[5] (0) | 2018.08.05 |
---|---|
[AWS/S3/Spring boot] Spring boot와 S3를 연동하여 이미지를 다운로드 받아보자 (0) | 2018.08.01 |
[Spring , 카카오 플러스친구] 스프링으로 챗봇을 개발하자! - 개발일기C[1] (0) | 2018.07.25 |
[Spring] Spring boot security 로그인 뷰 변경하기-개발일기A-[4] (1) | 2018.07.16 |
[Spring] Spring security 를 사용해보자!- 사용자 추가부터 로그인까지! (Spring boot, Gradle, MyBatis, MySQL)-개발일기A[3] (4) | 2018.07.15 |