diff --git a/src/main/java/com/example/demo/DemoApplication.java b/src/main/java/com/example/demo/DemoApplication.java index 2139ef822df764d410229d731b5f839654927546..09110f4eca124c49c236a3510619b4d6a9a29df0 100644 --- a/src/main/java/com/example/demo/DemoApplication.java +++ b/src/main/java/com/example/demo/DemoApplication.java @@ -1,16 +1,41 @@ package com.example.demo; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.context.ApplicationContext; +import java.util.Arrays; +import com.example.demo.entity.Item; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionFactoryBean; +import org.springframework.context.annotation.Bean; +import javax.sql.DataSource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.core.io.Resource; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.SpringApplication; + @RestController @SpringBootApplication +// @EntityScan(basePackageClasses = {Item.class}) + public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); - } - -} \ No newline at end of file + } + + + @Bean + public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { + SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); + sessionFactory.setDataSource(dataSource); + + Resource[] res = new PathMatchingResourcePatternResolver().getResources("mapper/Mapper.xml"); + sessionFactory.setMapperLocations(res); + + return sessionFactory.getObject(); + } + +} diff --git a/src/main/java/com/example/demo/controller/MemberController.java b/src/main/java/com/example/demo/controller/MemberController.java index 265e24c923253b8d0e6b3a703f9b07f4490348a9..065ae806f15a8e28d6d392aa22fddda4ff104834 100644 --- a/src/main/java/com/example/demo/controller/MemberController.java +++ b/src/main/java/com/example/demo/controller/MemberController.java @@ -21,7 +21,7 @@ public class MemberController { public Member createMember(){ MemberDto memberDto = new MemberDto(); - memberDto.setEmail("test1@email.com"); + memberDto.setEmail("test@email.com"); memberDto.setName("홍길동"); memberDto.setAddress("서울시 마포구 합정동"); memberDto.setPassword("1234"); diff --git a/src/main/java/com/example/demo/controller/UserController.java b/src/main/java/com/example/demo/controller/UserController.java new file mode 100644 index 0000000000000000000000000000000000000000..646e25e56661a51ee1fed1f15f214eb66a510518 --- /dev/null +++ b/src/main/java/com/example/demo/controller/UserController.java @@ -0,0 +1,28 @@ +package com.example.demo.controller; + +import java.util.List; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import com.example.demo.dao.UserDAO; +import com.example.demo.dto.UserDTO; + +@RestController +@MapperScan(basePackages="com.example.demo.dao")//탐색할 패키시 설정 +public class UserController { + @Autowired + private UserDAO userDAO;//UserDAO bean을 자동으로 주입 + + @RequestMapping("/users") + public List<UserDTO> users(@RequestParam(value="country", defaultValue = "")String country) throws Exception { //query String으로 country를 받도록 설정 + final UserDTO param = new UserDTO(0, null, country); + final List<UserDTO> userList = userDAO.selectUsers(param); + return userList; + } + +} + diff --git a/src/main/java/com/example/demo/dao/UserDAO.java b/src/main/java/com/example/demo/dao/UserDAO.java new file mode 100644 index 0000000000000000000000000000000000000000..d298f5b0facd5be1ecf942b8f17f8a499c40efce --- /dev/null +++ b/src/main/java/com/example/demo/dao/UserDAO.java @@ -0,0 +1,8 @@ +package com.example.demo.dao; + +import java.util.List; +import com.example.demo.dto.UserDTO; + +public interface UserDAO { + List<UserDTO> selectUsers(UserDTO param) throws Exception; +} diff --git a/src/main/java/com/example/demo/dto/UserDTO.java b/src/main/java/com/example/demo/dto/UserDTO.java new file mode 100644 index 0000000000000000000000000000000000000000..4fc23cfeea4254c778e8832e1bb673f14b94c0ba --- /dev/null +++ b/src/main/java/com/example/demo/dto/UserDTO.java @@ -0,0 +1,14 @@ +package com.example.demo.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; + +@AllArgsConstructor // 자동으로 모든 매개변수를 받는 생성자를 생성 +@Getter // Getter 생성 +@Setter // Setter 생성 +public class UserDTO { + private int seq; + private String name; + private String country; +} diff --git a/src/main/resources/mappers/UserMapper.xml b/src/main/resources/mappers/UserMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..a4ca9bd1ea582356be404827ab61e9174c37537d --- /dev/null +++ b/src/main/resources/mappers/UserMapper.xml @@ -0,0 +1,18 @@ + +<?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.example.demo.dao.UserDAO"><!--namespace를 통해 UserDAO와 연결합니다. --> + + <select id="selectUsers" parameterType="com.example.demo.dto.UserDTO" +resultType="com.example.demo.dto.UserDTO"> + SELECT `seq`, `name`, `country` FROM lab03 + <if test='country != null and country != ""'> + WHERE country = #{country} + </if> + </select> + +</mapper> + +