현재 버전Java 11Spring Boot 2.7.xschema.sql-- 테이블 생성 SQL - SHOPPING_CART CREATE TABLE SHOPPING_CART ( `ID` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'pk값', `USER_ID` VARCHAR(200) NULL COMMENT '유저ID', `PRODUCT_ID` BIGINT NULL COMMENT '상품ID', `QUANTITY` INT NULL COMMENT '장바구니 상품 수량', `CREATED_DATE` TIMESTAMP NULL COMMENT '생성일', `UPDATED_DATE` TIMESTAMP NULL COMMENT '수정일', PRIMARY KEY (ID) );DB에 입력-- auto..
소개Mybatis 는 XML 매핑으로 진행하는 게 일반적이긴하다.하지만 어노테이션만으로도 XML 없이 쿼리를 정의할 수 있다.다만 , 동적쿼리는.. xml 파일을 별도로 정의해주긴해야한다.어노테이션 사용@Mapper @Repository public interface CartMapper { // ... @Results(value = { // ... }) @Select("SELECT ...") Cart selectCartByUserId(@Param("userId") String userId); }쿼리 정의@Select 어노테이션으로 SQL 쿼리를 정의하고, @Param 으로 쿼리 파라미터를 정의함결과 매핑@Results와 @Result 어노테이션을 사용하여 쿼리 결과를 도메인 객체에 매핑합니다.관계 매핑@..
SOFT DELETE ?? HARD DELETE??정의soft delete데이터를 실제로 삭제하지 않고,삭제된 것 처럼 표시하는 방법hard delete데이터를 DB에서 영구적으로 제거하는 방법장바구니의 특성사실 장바구니를 다시 복구할 일이 없다면 hard delete 를 수행해도 문제가 없을 것 같다하지만,! 혹여나 시스템상에서 사용자의 삭제 의도와 장바구니 ↔ 주문 로직간의 문제가 발생하는 경우 사용자의 의도 파악쉬운 디버깅을 위해 SOFT DELETE 를 수행하는 것이 어떨까 생각도 해보았다.삭제하는 경우 DELETED_DATE 컬럼이 처음에는 비어있다가, 날짜가 기입되는 경우 삭제된 걸로 데이터만 들고오게 하는 것이다.솔직히 굳이굳이 싶기도한데.. 혹시나 모르는 것 아닌가 일단 SOFT_DELET..
스크립트 파일 준비-- truncate.sql TRUNCATE TABLE your_table_name; -- schema.sql CREATE TABLE your_table_name ( ... );truncate.sql 파일 → schema.sql 로 table create 순서application.properties 파일에 스크립트 경로 설정spring.datasource.schema=classpath:truncate.sql,classpath:schema.sql Uploaded by N2T
5.1 버전과 그 이전MySQL 5.1에서는 한 테이블 내에서 DEFAULT CURRENT_TIMESTAMP와 ON UPDATE CURRENT_TIMESTAMP 속성을 갖는 TIMESTAMP 컬럼을 각각 하나씩만 허용합니다.위 처럼 한 테이블내에서 시간값에 default 값을 추가해주는 경우 기본값 설정을 할 수 없다는 문구가 발생함.5.6 이상이후 버전에서는 이러한 제한이 완화되어 두 개 이상의 TIMESTAMP 컬럼에 DEFAULT CURRENT_TIMESTAMP를 사용할 수 있게 되었습니다.여러 TIMESTAMP 컬럼에 대해 DEFAULT CURRENT_TIMESTAMP와 ON UPDATE CURRENT_TIMESTAMP 클로즈를 사용할 수 있습니다이유?당시의 기술적인 제약과 내부 구현의 복잡성 때..