My footsteps
CRUD 연습 / 0808 본문
728x90
<추가>
- 백은 스프링부트 아이콘으로 서버 키기 프론트는 npm run dev
- 인서트는 post 매핑이다
- 마리아 디비에서는 추가 성공 여부를 정수형으로 받는다
<삭제>
- 인서트,딜리트,업데이트는 반환 타입이 다 int 다
Add.vue:14 POST http://localhost:8080/restaurant/add 400
이런 오류가 떴었는데 이유는 식당명 카테고리에 숫자를 넣어야 하는데 한글을 넣고 있어서 계속 오류가 났엇따
- 받아와야될게 잇으면 리퀘스트 파람,패스베리어블인데 둘중 뭐쓰는지는 취향차이다. 명시할게 필요하면 리퀘스트 파람..(카테고리같은거. 하지만 아이디같은 식별자는 사용자들이 알지 못하기 때문에 굳이 파람을 쓸필요가 없고 패스 베리어블을 쓴다)
- 바디에 넘기는 데이터가 잇을때는 메서드,헤드,바디 다 넣어서 작성해주고, get 외에 다른 매핑일때도 method를 써줘야한다
<전체적인 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 |