[mybatis] 객체 안에 객체 매핑하기
객체를 필드로 사용하는 경우 mybatis에서 <association>
을 활용할 수 있다.
객체를 필드로 사용하는 경우 mybatis에서 <association>
을 활용할 수 있다.
mybatis에서 update시 모든 컬럼에 if 조건물을 걸어야할때가 있다.
트리구조의 메뉴를 select하는 과정에서 1뎁스가 10개가 넘어가니 문제가 발생했다.
SQL 쿼리 작성시 PK키가 중복되는 경우 지정한 데이터만 INSERT가 아닌 UPDATE 시킬 수는 없을까?
ON DUPLICATE KEY UPDATE를 사용하면 된다.
xml파일에 선언하지 않았던 AES_DECRYPT(), UNHEX(), PASSWORD() 함수들이 보였다. 쿼리를 읽었을때 암호화와 복호화인건 알았으나 구체적인 사용방법을 알고 싶어 구글링해보니 MARIADB가 제공하는 내장함수였다.
이번에 진행중인 프로젝트는 프로시저보다 함수가 더 많이 사용되었다. 지난번 담당했던 프로젝트는 오직 프로시저만 썼었다. 둘의 차이가 뭘까? 언뜻 생각해봤을땐 return유무정도인데 깊이있게 알고싶어졌다.
DB를 여러 가지 쓰는 경우 현재 어느 DB에 접속되어있는지 서버 런할때 로그로 알 수 있으면 좋겠다고 생각했는데 팀장님이 그 방법을 알려주셨다.
바로 local.properties에 message.query를 이용하면 된다.
SQL에서도 변수를 사용할 수 있다! 알고는 있었지만 잘 사용한 적이 없는데 이번에 select로 가져온 값을 서브쿼리에서 사용하고 싶어서 찾아보다가 변수를 사용하게 되었다.
이밖에도 row갯수를 셀때에도 단독으로 많이 사용한다.
회차별로 예약할 수 있는 영화 프로그램을 만들어야 한다고 생각해보자.
여기서 회차는 요일별로 동일하다. 즉, 이번주 월요일에 총 3회차 영화상영이, 화요일에는 2회차 영화상영이 있었다면 다음주 월요일도 총 3회차, 화요일에는 2회차 영화상영이 예정되어 있는 것이다.
사용자가 선택한 날짜의 회차별로 이미 예약된 내역정보뿐만 아니라 예약 가능한 좌석수를 가져오는 쿼리를 만들어야한다.
예약시간표를 만들고싶었다.
예악가능한 시간대는 10시와 13시, 15시가 총 3가지이고 예약상태가 예약승인, 예약취소 총 3가지가 있다.
예약이 한 번도 없거나, 예약취소가 된 경우 예약이 가능하며 예약승인인 경우 예약이 불가능하다.
이때 특정 날짜를 달력에서 선택했을때 시간대별로 예약가능한지 불가능한지를 알고싶었다.