본문 바로가기
Spring/연습

잘못된 방식으로 한거.. 이거 service느낌으로 한거다 @Getmapping이런거 사용안된 형식이라 그냥 연습했따 치는 용도//rest api +mybatis써서 게시판 //@RestController등등

by SEOKIHOUSE 2023. 8. 1.

 

 

practice0801_RestApi.zip
0.09MB

CREATE TABLE `tbl_member` (
	`mno` INT(11) NOT NULL AUTO_INCREMENT,
	`NAME` VARCHAR(50) NOT NULL COLLATE 'utf8mb4_general_ci',
	`id` VARCHAR(20) NOT NULL COLLATE 'utf8mb4_general_ci',
	`pw` VARCHAR(20) NOT NULL COLLATE 'utf8mb4_general_ci',
	PRIMARY KEY (`mno`) USING BTREE,
	UNIQUE INDEX `id` (`id`) USING BTREE
)

INSERT INTO `tbl_member` (`mno`, `NAME`, `id`, `pw`) VALUES (2, '흰둥이ㅎㅎ', 'hin0', '1234');
INSERT INTO `tbl_member` (`mno`, `NAME`, `id`, `pw`) VALUES (3, '짱구2', '짱구2', '12345');
INSERT INTO `tbl_member` (`mno`, `NAME`, `id`, `pw`) VALUES (4, '짱구3', '짱구3', '12345');
INSERT INTO `tbl_member` (`mno`, `NAME`, `id`, `pw`) VALUES (5, '짱구18', '1818', '1818');
INSERT INTO `tbl_member` (`mno`, `NAME`, `id`, `pw`) VALUES (6, 'ㅎㅎ', 'ㅎㅎ', 'ㅎㅎ');

package com.study.springboot;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.study.springboot.dto.MemberDto;
import com.study.springboot.restApi.controller.RestApiController;

@Controller
public class MyController {
	@Autowired
	RestApiController rac;
	
	@RequestMapping("/")
	public String root() {
		return "redirect:list";
	}
	
	@RequestMapping("/list")
	public String list(Model model) {
		List<MemberDto> getList= rac.list();
		model.addAttribute("list", getList);
		return "list";
	}
	
	@RequestMapping("/detail")
	public String detail(@RequestParam("mno") String mno, Model model) {
		int mnos = Integer.parseInt(mno);
		MemberDto md = rac.oneList(mnos);
		model.addAttribute("member", md);
		return "detail";
	}
	
	
	@RequestMapping("/regist")
	public String regist() {
		return "regist";
	}
	
	@RequestMapping("/registPost")
	public String registPost(MemberDto member) {
		rac.insert(member);
		return "redirect:list";
	}
	
	@RequestMapping("/update")
	public String update(
			@RequestParam("mno") String mno,
			@RequestParam("name") String name,
			@RequestParam("pw")String pw,
			Model model) {
		MemberDto mt = new MemberDto();
		mt.setMno(Integer.parseInt(mno));
		mt.setName(name);
		mt.setPw(pw);
		
		model.addAttribute("mt",mt);
		return "update";
	}
	
	@RequestMapping("/updatePut")
	public String updatePut(MemberDto member) {
		rac.update(member);
		return "redirect:list";
	}
	
	@RequestMapping("/delete")
	public String delete(@RequestParam("mno") String mno) {
		rac.delete(Integer.parseInt(mno));
		return "redirect:list";
	}
	
}
package com.study.springboot.restApi.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.study.springboot.dao.IMemberDao;
import com.study.springboot.dto.MemberDto;

@RestController
@RequestMapping("/api")
public class RestApiController {
	
	@Autowired
	IMemberDao imd;
	
	@GetMapping("/members")
	public List<MemberDto> list() {
		List<MemberDto> ar = imd.list();
		StringBuilder sb = new StringBuilder();
		for(int i =0; i<ar.size(); i++) {
			sb.append(ar.get(i));
		}
		return ar;
	}
	
	@GetMapping("/member/{num}")
	public MemberDto oneList(@PathVariable int num) {
		MemberDto md = imd.getMember(num);
		return md;
	}
	
	@PostMapping("/member")
	public String insert(@RequestBody MemberDto member) {
		int result =imd.insert(member);
		String output = "";
		if(result ==1) {
			output="등록완료";
		}else {
			output="등록실패";
		}
		return output;
	}
	
	@PutMapping("/member")
	public String update(@RequestBody MemberDto member) {
		int result = imd.update(member);
		String output = "";
		if(result ==1) {
			output="수정완료";
		}else {
			output="수정실패";
		}
		return output;
	}
	
	@DeleteMapping("/member/{num}")
	public String delete(@PathVariable int num) {
		int result = imd.delete(num);
		String output = "";
		if(result ==1) {
			output="삭제완료";
		}else {
			output="삭제실패";
		}
		return output;
	}
	
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "https://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.study.springboot.dao.IMemberDao">

	<select id="list" resultType="com.study.springboot.dto.MemberDto">
		SELECT * FROM tbl_member
	</select>
	<select id="getMember" resultType="com.study.springboot.dto.MemberDto">
		SELECT * FROM tbl_member WHERE mno= #{param1}
	</select>
	<insert id="insert">
		INSERT INTO tbl_member (name, id, pw) 
		VALUES (#{member.name}, #{member.id}, #{member.pw})
	</insert>
	<update id="update">
		UPDATE tbl_member 
		SET name=#{member.name}, 
		pw=#{member.pw}
		WHERE mno=#{member.mno}
	</update>
	<delete id="delete">
		DELETE FROM tbl_member WHERE mno=#{param1}
	</delete>

	
</mapper>
package com.study.springboot.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.study.springboot.dto.MemberDto;

@Mapper
public interface IMemberDao {
	public List<MemberDto> list();
	public MemberDto getMember(int mno);
	public int insert(@Param("member") MemberDto member);
	public int update(@Param("member") MemberDto member);
	public int delete(int mno);
}
package com.study.springboot.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class MemberDto {
	private int mno;
	private String name;
	private String id;
	private String pw;
}