mybatis

Trouble Shooting

[쿼리 튜닝] JPA와 MyBatis를 혼용하여 쿼리 수를 줄여보자

문제 상황총 4개의 테이블과 관련 있는 데이터를 뽑아야 하는 상황이다.JPA만을 이용해서 14건의 쿼리가 나가던 것을 MyBatis로 직접 JOIN 쿼리를 작성해서 2건으로 줄였다.  문제 원인 Blog main 화면에 게시글(post) 정보를 나타내야 하는데, 여러 가지 이유로 post_tag와 tag 엔티티를 나눠놨고,  member 테이블의 데이터를 하나의 DTO에 담아야 하는 상황이다. DB 설계에 문제가 있을 수도 있고, 비즈니스 요구사항과 정규화를 위해 어쩔 수 없는 것일 수도 있다.이 프로젝트 설계할 당시에는 관련 지식이 거의 없었고, 감으로 설계했다...MongoDB 도입처음엔 쿼리가 너무 많이 나가서, 해당 DTO 조회만을 위한 데이터를 테이블로 빼서 MongoDB Document로 저장..

JAVA & Spring/Spring

[Spring] DB 연동 (MariaDB), MyBatis 사용

Spring DB 연동 Spring에서 DB 연결하는 방법을 간단히 알아보자. 1. gradle 설정 build.gradle에 아래와 같이 의존성을 추가해 주자. dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' //JDBC implementation 'org.springframework.boot:spring-boot-starter-jdbc' //mariadb runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' } 2. DB datasource 설정 Spring project의 application.properties에서 아래와 같이 datasource 정보를 설정해 주자..

Database/데이터 접근 기술

[MyBatis] 동적쿼리, 기타 문법

동적 SQL MyBatis를 사용하는 이유는 편리한 동적 SQL 기능 때문이다. 동적 쿼리를 위해 제공되는 기능은 아래와 같다. if choose(when, otherwise) where foreach MyBatis 공식 매뉴얼: https://mybatis.org/mybatis-3/ko/index.html MyBatis 스프링 공식 매뉴얼: https://mybatis.org/spring/ko/index.html if 단순한 if 문이다. if문의 test 조건에 만족하면 해당 SQL문을 추가한다. SELECT * FROM BLOG WHERE state = ‘ACTIVE’ AND title like #{title} choose - when, otherwise 자바의 switch 구문과 비슷하다. swi..

Database/데이터 접근 기술

[MyBatis] 마이바티스 기본 사용법

MyBatis란?MyBatis는 JdbcTemplate이 제공하는 대부분의 기능을 제공한다. 그러나 JdbcTemplate의 문제점 중 하나인 여러 줄의 String 형 sql을 작성해야 한다는 점을 MyBatis를 이용하여 해결할 수 있다.MyBatis는 SQL을 xml에 편리하게 작성할 수 있고, xml 내에서 동적 쿼리를 매우 편리하게 작성할 수 있다. JdbcTemplate은 스프링에 내장된 기능이고, 별도의 설정 없이 사용할 수 있지만, MyBatis는 약간의 설정이 필요하다. 따라서 동적쿼리와 복잡한 쿼리를 많이 사용하는 경우에는 MyBatis를 사용하고, 단순한 쿼리들이 많다면 JdbcTemplate을 사용하는 것이 좋을 것이다.  2024.07.31 추가단순한 도메인 관련 엔티티를 불러오는..

HSRyuuu
'mybatis' 태그의 글 목록