MyBatis

    MyBatis ON DUPLICATE KEY UPDATE: insert Key 중복 시 update 처리

    MyBatis ON DUPLICATE KEY UPDATE: insert Key 중복 시 update 처리

    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 쿼리 실행 후 auto_increment 키 값 반환하기

    MyBatis INSERT 쿼리 실행 후 auto_increment 키 값 반환하기

    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..

    MyBatis 마이바티스에서 LIKE문 사용하기

    MyBatis 마이바티스에서 LIKE문 사용하기

    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 '%'..

    [mybatis] springMVC + MyBatis 연동 (스프링MVC + 마이바티스)

    [mybatis] springMVC + MyBatis 연동 (스프링MVC + 마이바티스)

    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..

    MyBatis 동적 SQL 사용 (예시. 항목 별 정렬)

    MyBatis 동적 SQL 사용 (예시. 항목 별 정렬)

    동적 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 설정 파일

    📌mybatis 설정 파일 mybatis 프레임워크 자체 커넥션풀(Connection Pool)을 구축할 수 있다. 여러 개의 DB 연결 정보를 설정해 두고 실행 상황(운영, 개발 등)에 따라 사용할 DB를 지정할 수 있다. 실행 성능을 높이기 위해 SELECT 결과를 캐싱해 둘 수 있다. SQL 맵퍼 파일에서 사용할 값 객체(VO)에 대해 별칭을 부여할 수 있다. 바로 이런 mybatis 프레임워크의 동작 환경을 설정하는 파일이 바로 mybatis 설정 파일이다. 💡 루트 엘리먼트 mybatis 설정 파일의 루트 엘리먼트는 configuration 이다. configuration의 자식 엘리먼트 엘리먼트 용도 properties 프로퍼티 파일이 있는 경로 설정 를 사용하여 개별 프로퍼티 정의도 가능하다..

    [mybatis] SQL mapper(맵퍼) 파일

    mybatis의 가장 중요한 목적 중 하나는 DAO로부터 SQL 문을 분리하는 것이다. 이렇게 분리된 SQL문은 SqlSession에서 사용한다. 다음 코드는 전 포스팅에 작성한 SQL 맵퍼 파일이다. 📌SQL mapper MySqlProjectDao.xml select PNO, PNAME, STA_DATE, END_DATE, STATE from PROJECTS order by PNO desc insert into PROJECTS(PNAME,CONTENT,STA_DATE,END_DATE,STATE,CRE_DATE,TAGS) values (#{title},#{content},#{startDate},#{endDate},0,now(),#{tags}) select PNO, PNAME, CONTENT, STA_D..

    [mybatis] mybatis 적용

    [mybatis] mybatis 적용

    https://yeo-computerclass.tistory.com/231 [JSP & Servlet] 프로젝트 관리 글을 작성하면서 DataBinding 하는 부분은 빼고 작성하도록 하겠다. 이 부분은 작성하지 않아도 코드를 수정하여 충분히 구현할 수 있을 것이라 본다. 📌테이블 생성 멤버(Members) 테이블 CREATE TABLE m yeo-computerclass.tistory.com JSP & Servlet으로 구현한 프로젝트 관리에 mybatis를 적용해보도록 하겠다. 📌mybatis 흐름도 위 프로젝트 관리에서 mybatis를 이용하여 프로젝트 목록을 가져오는 흐름을 설명하도록 하겠다. 아래에 계속 설명을 보다가 이해를 돕기 위해서 mybatis 흐름도를 계속 보길 바란다. MySqlPro..