이클립스에서 Spring Boot 프로젝트 DB 설정하기
Spring Boot 프로젝트에서 Mybatis + MySQL 조합으로 DB정보를 설정하고, 사용자 테이블(t_demo_user)의 데이타를 조회하는 간단한 기능을 만들어 보자.
Mybatis는 자바객체와 SQL의 자동맵핑 기능을 제공하는 ORM (Object Relational Mapping) 프레임워크이며,
Mybatis-Spring 연동모듈은 Mybatis와 Spring을 간단하게 연동해준다.
- DB 테이블 : t_demo_user
seq | userId | userName | statusCode | loginYmd | |
---|---|---|---|---|---|
1 | user1 | user1@email.com | 1번 사용자 | 01 | 20200101 |
2 | user2 | user2@email.com | 2번 사용자 | 01 | 20220202 |
3 | user3 | user3@email.com | 3번 사용자 | 01 | 20220303 |
@ 개발환경
- Eclipse 2021-06 (4.20.0) + Spring Tools 4
- Java 11
- MySQL
- Maven
- Spring Boot 2.7.8
1. pom.xml
mysql, mybatis dependency 추가
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!-- jdbc + mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.1.0</version>
</dependency>
Java, Spring, Mybatis 버전에 따라 지원가능 여부가 다르므로 버전을 고려하여 dependency에 추가한다. 버전별 지원여부 확인
MyBatis-Spring-Boot-Starter | MyBatis-Spring | Spring Boot | Java |
---|---|---|---|
3.0 | 3.0 | 3.0 | Java 17+ |
2.3 | 2.1 | 2.5~2.7 | Java 8+ |
2.2 | 2.0.6+ | 2.5~2.7 | Java 8+ |
2.1 | 2.0.6+ | 2.1~2.4 | Java 8+ |
2. applicaion.properties
DB 주소 및 계정, mybatis 설정 추가
#datasource 설정
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://db_ip
spring.datasource.username=db_id
spring.datasource.password=db_pwd
#mybatis 설정
mybatis.type-aliases-package=com.onda2me.app.dto
mybatis.mapper-locations:classpath:mapper/*-mapper.xml
3. UserModel.java
public class UserModel {
private int seq;
private String userId;
private String userName;
private String email;
private String statusCode;
private String loginYmd;
public String toString() {
return "User[" +
"seq=" + seq +
", userName=" + userName +
", email=" + email +
", statusCode="+statusCode+
", loginYmd="+loginYmd+"]";
}
}
4. UserMapper.java
@Mapper
public interface UserMapper {
public UserModel selectActiveUser(String userId);
}
5. UserService.java
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public UserService(UserMapper userMapper) {
this.userMapper = userMapper;
}
public UserModel selectActiveUser(String userId) {
return userMapper.selectActiveUser(userId);
}
}
6. user-mapper.xml
<?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="com.onda2me.app.mapper.UserMapper">
<select id="selectActiveUser" parameterType="String" resultType="com.onda2me.app.model.UserModel">
select * from demo_t_user
where userId = #{userId} and statusCode = '01'
</select>
</mapper>
7. UserControler.java
@RestController
public class UserControler {
@Autowired
private UserService userService;
@RequestMapping(value = "/user/detail", method = RequestMethod.GET)
public String user_detail(Model model) {
UserModel user = userService.selectActiveUser("user01");
return user.toString();
}
}
8. Falcon1bootApplication.java
@SpringBootApplication
@MapperScan(basePackages="com.onda2me.app.mapper")
public class Falcon1bootApplication {
public static void main(String[] args) {
SpringApplication.run(Falcon1bootApplication.class, args);
}
}
9. 프로젝트 구조
10. 스프링부트 실행
11. 웹에서 확인
* 참고
SpringBoot에서 디자인 화면을 적용하는 방법은 SpringBoot에서 Html Thymeleaf 서비스 구성하기 참고
댓글남기기