Database ( DB )/ibatis, mybatis 11

Springboot에서 Mybatis 사용하는 방법

1. Mybatis란? Mybatis는 Java Persistence Framework의 하나로 XML 서술자나 Annotation을 사용하여 저장 프로시저나 SQL Query로 객체들을 연결시킵니다. Mybatis는 IBATIS 3.0의 포크이며 IBATIS의 원 개발자들이 포함된 팀에 의해 유지 보수되고 있습니다. 2. 환경 설정 Mybatis를 사용하기 위해서는 먼저 Dependency, 접속 정보 설정 등의 환경 설정을 먼저 해야 합니다. 2.1. Dependency Mybatis를 사용하기 위해서는 Maven이나 Gradle을 사용하여 Dependency를 추가해야 합니다. 2.1.1. Maven pom.xml에 다음 코드를 추가합니다. org.mybatis.spring.boot mybatis-..

[Intellij] mybatis xml 파일에서 노란색 배경 지우는 방법

IntelliJ에서 Mybatis를 사용할 때 xml 파일에서 진짜 보기 싫은 노란색 배경이 생깁니다. 에러도 안 나고 정상 동작하니 사용하는 데는 아무런 문제가 없지만 계속 보이니 거슬리고 짜증 나는 것이 사실입니다. 이 노란색 배경을 지우는 방법을 알아봅니다. 노란색 배경 문제의 노란색 배경은 다음과 같이 표시됩니다. 노란색 배경의 원인 노란색 배경의 원인을 확인해보면 메시지가 다음과 같이 표시됩니다. 메시지를 해석해보면 다음과 같습니다. No data source are configured to run this SQL and provide advanced code assistance. -> Data source가 없습니다. SQL dialect is not configured. -> SQL dial..

[Spring boot] mybatis alias 사용법

MyBatis를 사용할 때 sql에 parameterType 또는 resultType의 값으로 VO, DTO 클래스들을 넘길 때, 패키지 경로까지 모두 써야 하는 불편함이 있습니다. 예를 들어 다음과 같습니다. 1) User.java package com.example.demo; import lombok.Getter; import lombok.Setter; @Getter @Setter public class User { private String userId; private String userName; } 2) UserMapper.xml select * from tb_user where user_id = #{userId} select * from tb_user 간단한 설정으로 Class명만 입력하게 할..

[ibatis]JavaBeansDataExchange could not instantiate result class

ibatis에서 객체를 초기화 할 때 생기는 예외입니다. 저같은 경우는 xml에서 select문을 사용할 때 resultClass="java.util.Map" 으로 사용했는데 아래와 같이 Cause가 발생했습니다. Cause: java.lang.RuntimeException: JavaBeansDataExchange could not instantiate result class. Cause: java.lang.InstantiationException: java.util.Map 이 경우 resultClass="java.util.HashMap" 으로 변경해주면 해결됩니다. 인터페이스 자체를 사용하기 위해서는 그 자체를 구현해주는 클래스로 선언을 해야 하는데 Map은 인터페이스이기 때문에 Map으로 선언해버리면..

mybstis typeAlias 사용하기

mybatis에서 parameterType이나 resultType에 VO를 사용하려면 com.abc.project.UserVO 와 같이 경로를 모두 써줘야 해서 불편하다. typeAlias를 이용하여 짧게 변경할 수 있는데 사용법은 크게 2가지가 있다. 1. 클래스 단위 등록 - mybatis 설정 파일에 typeAliases를 등록한다. ... 2. 패키지 단위 등록 - 이 경우는 특정 패키지에 vo를 모두 넣어놨을 때 사용하는 방법. 2.1 VO에 Alias 작성 package com.test.vo; import org.apache.ibatis.type.Alias; @Alias("test") public class TestVo { ... } 2.2 mybatis 설정 파일에 패키지 등록 ...

ibatis list에 map을 담아서 넘겼을 때 iterate ( foreach / 반복 / 루프 ) 방법

1. java List> list = new ArrayList>(); Map tmp = new HashMap(); tmp.put("code1", "A"); tmp.put("desc1", "A"); list.add(tmp); tmp = new HashMap(); tmp.put("code1", "B"); tmp.put("desc1", "B"); list.add(tmp); Map param = new HashMap(); param.put("codeList", list); 2. ibatis ( xml ) SELECT user_id AS "$cardList[].code1$", user_name AS "$cardList[].code1$", 3. 참고사항 select 에 넣을때는 $을 사용해야 함.

ibatis/mybatis - org.postgresql.jdbc4.Jdbc4PreparedStatement.setQueryTimeout(int) 에러 발생 시

1. 해결방법 JDBC 설정에서 defaultStatementTimeout를 삭제합니다. ex) 2. 상세 설명 defaultStatementTimeout 는 모든 JDBC 쿼리에 대한 timeout 시간(초) 지정합니다. 지정하지 않는 경우 timeout 없습니다.(cf. 각 statement 설정에 따라) (각 statement 의 설정으로 override 가능함. 모든 driver가 이 설정을 지원하는 것은 아님에 유의할 것.) 즉, timeout이 발생하여 발생 한 오류입니다.

728x90
loading