My footsteps

CRUD 연습 / 0808 본문

Develop/곤부📙

CRUD 연습 / 0808

밀김 2023. 8. 8. 15:24
728x90

 

 

 

 

 

 

 

 

 

 

<추가>

 

- 백은 스프링부트 아이콘으로 서버 키기 프론트는 npm run dev

 

 

- 인서트는 post 매핑이다

 

 

- 마리아 디비에서는 추가 성공 여부를 정수형으로 받는다

 

 

 

아래는 중괄호랑 샵이 있어야함 . 나머지는 컬럼명 넣는걸로 똒같음
디비에서 조회를 할땐 이렇게

 

 


 

 

<삭제>

 

 

- 인서트,딜리트,업데이트는 반환 타입이 다 int 다

 

 

 

 

 

 


 

 

 

 

Add.vue:14     POST http://localhost:8080/restaurant/add 400

이런 오류가 떴었는데 이유는 식당명 카테고리에 숫자를 넣어야 하는데 한글을 넣고 있어서 계속 오류가 났엇따

 

 

 

- 받아와야될게 잇으면 리퀘스트 파람,패스베리어블인데 둘중 뭐쓰는지는 취향차이다. 명시할게 필요하면 리퀘스트 파람..(카테고리같은거. 하지만 아이디같은 식별자는 사용자들이 알지 못하기 때문에 굳이 파람을 쓸필요가 없고 패스 베리어블을 쓴다)

 

 

 

- 바디에 넘기는 데이터가 잇을때는 메서드,헤드,바디 다 넣어서 작성해주고, get 외에 다른 매핑일때도 method를 써줘야한다

 

 

 

복잡하고 양이 많은 데이터는 바디에 담고, 비교적 간단한 데이터는 url에 담는단다

 

 


 

 

 

 

<전체적인 CRUD>

 

 

//Controller
  
@RestController
@RequestMapping("restaurant")
public class RestaurantController {
   
    @Autowired
    private RestaurantService service;

    @GetMapping("{id}") //Read의 R
    public Restaurant detail(@PathVariable("id") int id){
        return service.get(id);
    }

    @PutMapping("edit")  //Update의 U
    public int update(@RequestBody Restaurant restaurant){
        return service.update(restaurant);
    }

    //추가
    @PostMapping("add"//Create의 C
    public int add(@RequestBody Restaurant restaurant) {
        return service.add(restaurant);
    }

    @DeleteMapping("{id}") //Delete의 D
    public int delete(@PathVariable("id") int id){
        return service.delete(id);
    }

}

 

 

 

 

//Repository
 
@Mapper
public interface RestaurantRepository {

    List<Restaurant> findAll(String query);

    Restaurant find(int id);

    int update(Restaurant restaurant);

    int add(Restaurant restaurant);

    int delete(int id);


}

 

 

 

 

//Mapper

    <select id="find" resultType="Restaurant">
        select
            *
        from
            restaurant_study
        where
            id = #{id}
    </select>

    <update id="update" parameterType="Restaurant">
        update
            restaurant_study
        set
            name = #{name},
            category_id = #{categoryId},
            img = #{img},
            address = #{address},
            operating_time = #{operatingTime},
            contact_number = #{contactNumber}
        where id = #{id}
    </update>

    <insert id="add" parameterType="Restaurant">
    insert into
        restaurant_study(name,category_id,img,address,intro,contact_number,operating_time)
    values(#{name},#{categoryId},#{img},#{address},#{intro},#{contactNumber},#{operatingTime})
    </insert>

    <delete id="delete" parameterType="int">
        delete from
            restaurant_study
        where
            id=#{id}
    </delete>

 

 

 

 

//ServiceImp
 
@Service
public class RestaurantServiceImp implements RestaurantService{

    @Autowired
    private RestaurantRepository repository;

    @Override
    public Restaurant get(int id) {
        return repository.find(id);
    }

    @Override
    public int update(Restaurant restaurant) {
        return repository.update(restaurant);
    }

    @Override
    public int add(Restaurant restaurant){
        return repository.add(restaurant);
    }

    @Override
    public int delete(int id){
        return repository.delete(id);
    }
}

 

 

 

 

//Service
 
public interface RestaurantService {

    List<Restaurant> getList();
    List<Restaurant> getListByQuery(String query);
    Restaurant get(int id);
    int update(Restaurant restaurant);
    int add(Restaurant restaurant);
    int delete(int id);

}

 

 

 

 

 

 

 

 

 

 

 

728x90

'Develop > 곤부📙' 카테고리의 다른 글

스터디 / 0819  (0) 2023.08.19
CRUD 연습 / 0816  (0) 2023.08.16
코딩애플 / Vue.js  (0) 2023.08.04
코딩애플 / Javascript (기초)  (0) 2023.08.01
코딩애플 / Javascript (ES6)  (0) 2023.07.31