728x90
1. xml를 사용하지 않고 mybatis-spring-boot-starter를 사용하여 연동해보겠습니다.
https://github.com/mybatis/spring-boot-starter/wiki/Quick-Start
빠른 시작 방법을 알 수 있습니다.
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
runtimeOnly 'mysql:mysql-connector-java'
mybatis boot starter와 mysql connector 의존성을 추가합니다. gradle로 진행하겠습니다.
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/cokes1?serverTimeZone=Asia/Seoul&CharacterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root
application.properties 에 datasource 설정을 해줍니다. mysql Driver를 지정해주고, url과 username, password를 입력합니다.
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
@Getter
@Setter
public class User {
long id;
String email;
String password;
String name;
LocalDateTime det;
public User(String email, String password, String name) {
this.email = email;
this.password = password;
this.name = name;
}
}
간단한 User 입니다. id와 det는 자동으로 추가가 되어, email password name만을 이용한 생성자를 만들었습니다.
UserMapper 인터페이스를 만듭니다.
@Mapper
public interface UserMapper {
@Insert("INSERT INTO user (email, password, name) VALUES(#{email}, #{password}, #{name})")
@Options(useGeneratedKeys = true, keyProperty = "id")
void insert(User user);
@Select("SELECT * FROM user")
List<User> select();
}
insert와 List를 가져오는 select 두 기능이 있습니다.
@Mapper 어노테이션을 지정하여 이 인터페이스가 매퍼라는 것을 알려줍니다.
@Insert와 @Select 어노테이션을 사용해 sql문을 작성합니다. 값은 #{email} 을 사용하여 값을 치환합니다.
@Options를 사용해 옵션들을 지정할 수 있습니다.
private final UserMapper userMapper;
@Autowired
public UserRepositoryImpl(UserMapper userMapper) {
this.userMapper = userMapper;
}
이 매퍼를 사용할 곳에 선언을 하고 @Autowired로 자동 의존성 주입되도록 설정합니다.
@Override
public void insert(User user) {
userMapper.insert(user);
}
@Override
public List<User> userList() {
List<User> list = userMapper.select();
return list;
}
이렇게 사용하면 됩니다.
728x90
'Back-End > Spring(Boot)' 카테고리의 다른 글
@ControllerAdvice으로 @ExceptionHandler 전역 에러 핸들러 만들기 (0) | 2021.07.20 |
---|---|
REST API LocalDateTime 사용할 때 문제점 해결해보기 (0) | 2021.07.18 |
Intellij - 롬북(lombok) 사용을 위한 설정 (0) | 2021.06.24 |
스프링의 의존성 주입 - 기초 (0) | 2021.05.30 |
스프링 Cookie (0) | 2021.03.06 |