ON DUPLICATE KEY UPDATE: upsert 구현 `ON DUPLICATE KEY UPDATE`는 `MySQL` 및 `MariaDB`에서 사용되는 SQL 문장 중 하나로, 주로 데이터를 삽입하려고 할 때 기존 레코드와 중복된 경우(중복 레코드) 기존 레코드를 업데이트하거나 무시하는데 사용됩니다. 중복 레코드: 데이터베이스에 이미 동일한 고유 키(primary key 또는 unique key)가 존재하는 경우, `ON DUPLICATE KEY UPDATE`를 사용하여 중복 레코드를 업데이트하거나 새로운 값을 가질 수 있습니다. 구문: INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...) ON DUPLICATE K..
MyBatis 쿼리 생성 INSERT INTO TB_USER (USER_NAME, USER_AGE, USER_GENDER ,USER_YN ) VALUES (#{userName}, #{userAge}, #{userGender} ,#{userYn} ); `useGeneratedKeys` DB에서 자동으로 생성된 키를 사용할지 여부입니다. `AUTO_INCREMENT` 또는 `IDENTITY` 속성을 가진 열에 사용합니다. `keyProperty` DB에서 생성된 키를 매핑할 자바 객체의 프로퍼티를 지정합니다. 위 예시처럼 `useGeneratedKeys`와 같이 사용함으로써 자동 생성된 ID 값을 저장하기 위한 프로퍼티를 지정해주어야 합니다. 반환 값 받기 userMapper.insertUserAndGetP..
LIKE문은 일치하는 문자열을 찾기 위해 사용되는문법입니다. SQL에서 LIKE문을 사용하는 방법은 다음과 같습니다. SELECT * FROM board WHERE title LIKE '%test%' 하지만 MyBatis에서 LIKE 문을 사용하기 위해서는 약간 다른 형태로 사용되며, ORACLE인지, MySQL인지에 따라서도 약간의 차이가 있습니다. ORACLE SELECT * FROM board WHERE title LIKE '%'||#{searchTitle}||'%' MySQL (MariaDB) SELECT * FROM board WHERE title LIKE CONCAT('%',#{searchTitle},'%') Ms-SQL SELECT * FROM board WHERE title LIKE '%'..
pom.xml에 라이브러리 설정 ▶pom.xml (부분) org.mybatis mybatis 3.4.6 org.mybatis mybatis-spring 1.3.2 org.springframework spring-jdbc 5.0.2.RELEASE mysql mysql-connector-java 8.0.27 DB는 자신이 쓰는 DB에 맞춰서 추가해주면 된다. ▶pom.xml 전체 코드 더보기 4.0.0 com.spring boardApp boardProject war 1.0.0-BUILD-SNAPSHOT 1.6 3.1.1.RELEASE 1.6.10 1.6.6 5.0.2.RELEASE 3.4.6 1.3.2 8.0.27 org.springframework spring-context ${org.springfram..
동적 SQL 필요성 MyBatis의 동적 SQL 기능 --1 select * from board; --2 select * from board where title = 'winter'; --3 select * from board where title = 'winter' and content = 'summer'; 위 쿼리 세 개는 게시판에서 SELECT문을 사용하여 데이터를 추출하고 있습니다. 위 세 쿼리들은 조건절만 다르기 때문에 MyBatis의 동적 SQL 기능을 사용하면 세 개의 SQL문을 한 개의 SQL문으로 구현이 가능합니다. 태그 SQL 문 SQL 문 태그 사용법 SQL 문 예제 --예제1 SELECT * FROM board title = #{title} and content = #{content..
📌mybatis 설정 파일 mybatis 프레임워크 자체 커넥션풀(Connection Pool)을 구축할 수 있다. 여러 개의 DB 연결 정보를 설정해 두고 실행 상황(운영, 개발 등)에 따라 사용할 DB를 지정할 수 있다. 실행 성능을 높이기 위해 SELECT 결과를 캐싱해 둘 수 있다. SQL 맵퍼 파일에서 사용할 값 객체(VO)에 대해 별칭을 부여할 수 있다. 바로 이런 mybatis 프레임워크의 동작 환경을 설정하는 파일이 바로 mybatis 설정 파일이다. 💡 루트 엘리먼트 mybatis 설정 파일의 루트 엘리먼트는 configuration 이다. configuration의 자식 엘리먼트 엘리먼트 용도 properties 프로퍼티 파일이 있는 경로 설정 를 사용하여 개별 프로퍼티 정의도 가능하다..