본문 바로가기

반응형

Query

(5)
[Study] JPA vs MyBatis 비교 – 언제 어떤 걸 써야 할까 0. JPA vs MyBatis 비교 – 언제 어떤 걸 써야 할까?백엔드 개발을 하다 보면, 데이터베이스와 애플리케이션을 연결하는 방법(ORM 혹은 SQL 매퍼)에 대해 반드시 고민하게 됩니다.Java 진영에서 많이 사용하는 대표적인 기술이 바로 JPA(Java Persistence API)와 MyBatis입니다.그렇다면 두 기술은 어떤 차이가 있고, 언제 어떤 것을 써야 할까요? 오늘은 장단점을 비교하고, 실제 적용 사례까지 함께 정리해보겠습니다.1. JPA란 무엇인가?JPA (Java Persistence API)는 자바에서 ORM(Object-Relational Mapping)을 구현하기 위한 표준 인터페이스입니다.ORM이란, 객체(클래스)와 데이터베이스 테이블을 매핑하여 SQL을 직접 작성하지 않..
[JPA] Method is only allowed for a query Method is only allowed for a query. Use execute or executeUpdate instead of executeQuery; SQL statement: INSERT INTO member (MEMBER_ID, NICK_NAME, EMAIL, PASSWORD, MEMBER_AUTH, MEMBER_STATUS) VALUES (?, ?, ?, ?, 'User', 'Active') 이 에러가 발생한 원인은 어노테이션때문에 발생한 에러이다.JPA에서 쿼리를 구분할때 데이터를 반환하는가 수정 혹은 실행하는 가로 구분하게 된다. SELECT문인 executeQuery는 데이터를 반환을 목적으로 한다. INSERT문, UPDATE문, DELTE문은 execute나 executeUpda..
쿼리 단순화 작업 SELECT dc.*, c.t3_ID_FK FROM test.t1 dc JOIN test.t2 c ON dc.t2_ID_FK = c.t2_ID WHERE t3_ID_FK IN (select mm.t3_ID from test.t3 mm where mm.t3_PARENT_ID IN (select m2.t3_ID from test.t3 m1 LEFT OUTER JOIN test.t3 m2 ON m1.t3_ID = m2.t3_PARENT_ID where m1.t3_ID = 116)) SELECT dc.*, c.t3_ID_FK FROM test.t1 dc JOIN test.t2 c ON dc.t2_ID_FK = c.t2_ID JOIN test.t3 mm ON dc.t3_ID_FK = mm.t3_ID JOIN te..
[Spring] SQLErrorCodesFactory INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader(loadBeanDefinitions:317)- Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml] INFO org.springframework.jdbc.support.SQLErrorCodesFactory(:127) - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, Hana] => DB에 연결이 안된다던지 잘못된 쿼리문을..
[Mybatis] Mybatis XML 작성 템플릿 사용할 mapper지정 쿼리내용(select) 쿼리내용(insert) INSERT INTO DB명.table명 ( column, ...) VALUES ( #{파라미터}, ... ) SELECT CASE COUNT(*) WHEN 0 THEN 1 ELSE MAX(POST_SEQ) END AS POST_SEQ FROM ~ 쿼리내용(update) UPDATE DB명.Table명 SET BBS_CODE = #{bbsCode}, TITLE = #{title}, CONTENT = #{content}, REG_SEQ = #{regSeq}, MOD_DATE = now(), BBS_GB = #{bbsGb} WHERE POST_SEQ = #{postSeq} 쿼리내용(delete_board)/게시글은 삭제 하지 않고 숨김 처..

반응형