개발공작소
728x90
article thumbnail
[MyBatis] ${ }으로 테이블명을 가져올 때 생기는 구문오류 해결방법 :: 숫자로 시작하는 테이블명 구문오류
MyBatis 2022. 8. 22. 12:35

테이블명이 숫자로 시작하는 경우, 구문오류 발생? 기능이 제대로 작동하지 않는다는 연락을 받고, 로그를 확인해보니 다음과 같은 에러가 발생했다. 위의 이미지는 DBeaver에서 실제 일어난 에러와 같이 에러나 나도록 한 쿼리문이다. 왜 이런 에러가 떨어지는건지 찾아보니, 아이디의 첫문자가 숫자로 시작하는 사용자의 계정에서만 공통적으로 쿼리문에서 에러가 발생한다는 것을 알게 되었다. 그래서 해당 쿼리문을 보니 다음과 같이 작성되어 있었다. 오류가 발생한 샘플쿼리 SELECT id, name FROM ${schema_name}.${table_name} 여기서 ${schema_name}은 스키마명일테고, 에러나 나는 부분은 ${table_name} 이 부근인데, 현재 로직은 사용자의 아이디를 테이블명인 ${t..

[MyBatis] 마이바티스에서 샵(#)과 달러($)의 차이점에 대하여
MyBatis 2022. 8. 20. 14:46

개발을 하면서 항상 #만 써서 $가 있는 줄 몰랐던 신입이 시절에 선임이 $가 있다는 것도 알려줬다. 둘의 차이점을 까먹은 김에 정리해본다.. 마이바티스에서의 #{ }과 ${ }의 차이 1. #{ }의 특징 #{ }으로 감싸면 자동으로 파라매터 형태가 된다. 예들 들어 abc라는 값을 가져왔다고 하면 'abc'와 같이 따옴표가 붙고, 123이라는 값을 가져왔다고 한다면 따옴표가 붙지 않은 123과 같이 된다. 1. 가져온 파라메터의 데이터 타입에 따라 따옴표(')가 붙기도 하고 붙지 않기도 한다. ( abc => 'abc' / 123 => 123 ) 2. 주로 조건절(where)에서 컬럼값을 비교할때 자주 사용하게 된다. 샘플코드 SELECT id FROM test_table WHERE name = #{..

article thumbnail
[MyBatis] 마이바티스 부등호(>, <, >=, <= )가 안 먹히는 현상/부등호 오류 ( CDATA )
MyBatis 2022. 5. 1. 01:47

마이바티스를 사용하면서 값을 비교하다 보면 부등호를 쓰게 되는데, 그럴 때 문법오류가 뜰 때가 있다. SQL문법 오류는 아닌데, 마이바티스에서 나는 에러이다 보니... 해결법은 간단하다. CDATA로 묶어 주면 되는데 아래와 같다. -- 에러남 AND BEG_DE 으로 부등호를 묶어 주면 된다

article thumbnail
[연습장] Youtube Data API를 통한 유튜브 동영상 리스트를 만들어 보자. (7) 댓글 기능 구현 - 댓글 테이블에 INSERT하기
연습장 2022. 3. 17. 20:50

오늘은 동영상을 선택했을 때 댓글을 입력하고 댓글을 볼 수 있는 기능을 구현하려고 한다.. 우선 기본 유튜브와 비슷하게 UI를 설계(?) 했다. 우선 관련 채널 영상을 우측으로 놔두고, 동영상 아래에 댓글 컴포넌트를 만들어 추가 할 생각이다. 우선 오늘은 댓글을 추가하는 기능에 대해서만 집중하고자, 로그인 같은 기능은 다음시간에 넣어보려고 한다. 로그인 기능 또한 네이버 오픈API를 사용하여 할 생각이다. 댓글 같은 경우에는 데이터베이스가 필요하다고 판단되어, Oracle설치 및 기존 프로젝트에 Oracle 및 MyBatis를 연동해주었다.. 각 글을 참조해서 하도록 하자. ( 오라클 설치 ) ( 스프링부트 오라클 및 마이바티스 연동 ) 그럼 바로 시작해보자. 1. 댓글 테이블 및 시퀀스 생성 -----..

[MyBatis] 어노테이션 방식과 XML방식의 구현방법 및 차이점
MyBatis 2022. 3. 17. 08:05

지금까지 개발업무를 보면서 마이바티스를 당연하게 많이 써왔는데, xml파일을 따로 두어 쿼리문을 작성한 뒤 데이터베이스에 접근하여 CRUD를 했더랬다. 근데 이게 XML방식만 있는게 아니라 어노테이션 방식도 있다는 것을 알게 되서 정리해본다. 1. 어노테이션 방식 ============================================================================ 기본문법 @Select("쿼리") public String 메서드명(); @Insert("쿼리") public String 메서드명(); @Update("쿼리") public String 메서드명(); @Delete("쿼리") public String 메서드명(); Service @Autowired Index..

article thumbnail
[기타] 스프링부트(Spring Boot) + 그래들(Gradle)에서 Mybatis, Oracle 연동하기
기타 2022. 3. 17. 03:54

이번에 댓글기능 구현하려고 하니, 불가피하게 DB를 연동 및 마이바티스를 써야 할 것 같아 알아보았다. 아직 스프링부트가 안익숙하기도 하고, Gradle도 처음 써보는거라 한번 정리한다. 혹시 Oracle이 설치 안되어 있다면 ( 참조글 )을 참조 하도록 하자. 1. 커넥션 풀 설정 ============================================================================ 우선 스프링부트로 프로젝트를 생성하였다면 application.properties파일이 있을 것이다. 거기에 커넥션 풀을 설정 할 수 있다. 나는 다음과 같이 설정해주었다. spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriv..

728x90