분류 전체보기 954

이벤트 핸들러

click Me!! export default{ methods:{ handler(event){ console.log(event); } } } 클릭하면 이벤트 객체 자동으로 들어감. 다른 이벤트 하고 싶으면 @이벤트명 하면 됨, @scroll 근데 @click="handler(e)" 이런 식으로는 안됨. 만약, 인자를 추가로 받고 싶다면. click Me1!! click Me2!! export default{ methods:{ handler(msg ,e){ console.log(msg); console.log(msg, e); } } } 저렇게 $event 라고 넣어줘야 함. 약속임. $e 안됨. 만약 이벤트 두개 추가하고 싶다, @click="handler('h1', $event), handler2()" ..

Vue.js 2023.10.10

25. ORM -JPA

JPA란 Java Persistence API 직역은 자바 영속성 API 라는데... DB가 영속성이라서 그런건가. JPA의 기본 컨셉은 자바 컬렉션 컬렉션에 add하거나 remove 하는 것 처럼. 자바 진영의 ORM 기술 표준임. 즉, 인터페이스 ORM은 Object Relational Mapping 객체 관계형데이터 맵핑 객체는 겍체대로 설계하고 DB는 DB대로 설계 하는데 ORM이 중간에서 매핑해 줌. 대부분 대중적인 언어는 ORM 기술이 존재함. ORM은 RDB와 객체를 이어주는 기술임. RDB도 잘 알아야 함. ORM 에러의 많은 부분이 DB에서 일어날 거임. 결국 얘도 JDBC를 쓰는 거긴 함. 일종의 뭐 우리가 리스트 쓰듯이 (list.add()) 하듯이 하면 그걸 쿼리문으로 바꿔서 JDB..

24. ORM

지금 시대는 객체를 관계형 DB에 관리 관계형 DB는 sql만 알아들으므로 SQL 의존적인 개발을 피하기 어려움 개발자가 SQL 매퍼 역할을 하는 중 관계형 DB는 상속관계도 없음. 비슷한 게 있긴 하지만 (Super타입, sub타입) 복잡함. 보통 클래스 자체를 DB에 맞춰 정의함. 도메인 말하는 듯. 그리고 만약 예를 들어 Member 객체가 Order 객체를 가지고 있다고 생각해 보셈. 클래스로써는 상상이 가지만 DB에서는 어떻게 구현할거임? 이럴 경우 보통 Order의 Id를 가지고 있다가 따로 Order 테이블에서 JOIN 시킴. JOIN : sql 명령어 중 하나. 둘 이상의 테이블을 연결해 데이터를 검색하는 방법. 적어도 하나의 컬럼을 공유하고 있어야 하며, 이 컬럼을 PK또는 FK값으로 사..

22. 마이바티스 기능들.

마이바티스 사용하는 최고의 이유는 if, chose, trim, foreach 등의 동적쿼리 기능 때문 대충 이런 식임. choose는 뭔가 switch와 비슷한데, 근데 특정 값이 case가 아니라 조건문임 참일 시 넣을 내용 참일 시 넣을 내용 위의 조건이 모두 만족하지 않을 시 이걸로 넣음. and ~~~~ and ~~~~ and ~~~~ 만약 저기 안에 하나도 안 맞으면 where조차 안 붙임. 근데 하나라도 맞으면, where and는 sql문법 오류이므로 and를 지워줌. 첫번째면. 그 다음부터 맞은 것들은 and 붙여줌. 그러니까 뭔가 알아서 똑똑하게 where ~~~~ and ~~~~ and ~~~~ 이런 형식을 맞춰준다는 거임. ~~~~ 만약 접두사(prefix)에 and나 or가 있으면..

21. 마이바티스 적용2

@Configuration @RequiredArgsConstructor public class MyBatisConfig { private final ItemMapper itemMapper; @Bean public ItemService itemService(){ return new ItemServiceV1(itemRepository()); } @Bean public ItemRepository itemRepository(){ return new MyBatisItemRepository(itemMapper); } } ItemMapper가 @Mapper 이거 붙여서 xml이랑 연동되서 뭔가 구현체로 하나 만들어 진 후 빈으로 등록된다. 그래서 주입받을 수 있다. 근데 인텔리제이 문제인지 빨간 줄 뜨기는 하는데, ..

20. 마이바티스 적용 1

@Mapper public interface ItemMapper { void save(Item item); void update(@Param("id") Long id, @Param("updateParam") ItemUpdateDto updateParam); Optional findById(Long id); List findAll(ItemSearchCond itemSearch); } 먼저 인터페이스를 만듦. 이건 마이바티스 매핑 XML을 호출해주는 매퍼 인터페이스. @Mapper를 꼭 붙여야 인식됨. @Param은 파라미터 하나일 경우에는 안넣어도 되는데, 2개 들어갈 때는 넣어줘야 함. 아마 하나면 알아서 인식해서 되는 듯 함. 그러니까, 따져보면 다 매개변수들이 @Param 붙어있어야 하는데 하나라서 ..

19. MyBatis 설정

먼저 라이브러리에 추가 시켜줘야 한다. build.gradle에 implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0' 뒤에 버전정보가 붙어야 하는 것들은, 스프링이 공식지원을 하지 않는 것 들이다. 여튼 라이브러리에 추가 하고, mybatis.type-aliases-package=hello.itemservice.domain mybatis.configuration.map-underscore-to-camel-case=true logging.level.hello.itemservice.repository.mybatis=trace application.properties에 이렇게 추가해 준다. mybatis.type-aliases-p..