본문 바로가기
반응형

mybatis4

mybatis 에서 dto camel case 적용 java의 프레임 워크중 하나인 마이바티스 에 대한 설명은 아래 참고 포스팅을 참고 바란다. mybatis에서 데이터베이스를 연동하며 값을 dto에 담아오게 되는데, 그 값을 자바에서는 camel case를 주로 사용한다. camel case는 아래 참고 포스팅 참고, 문제는 db 에서 데이터를 가져올때 selectProvider 절에 쿼리가 있는데, dto 에서 camel 케이스를 맞춰주기 위해서는 모두 alias 를 사용하여 camel케이스로 작성을 해야했다. select USER_NAME as userName, USER_AGE as userAge 이런식으로 말이다. 이럴경우에 property 에 mybatis: configuration: map-underscore-to-camel-case: true.. 2023. 5. 29.
SQL Builder 클래스 이전 포스팅에서 Mybatis를 이용해서 sql 문을 만드는 과정을 다룬적이 있다. 자세한 내용은 아래 참고 포스팅에 기술 되어있다. 원래 SQL 문은 String 으로 기술이 되어있고, 아래 참고 포스팅을 봐도 결국엔 String builder 를 통해서 String 을 Return 해주었다. 하지만 상황에 따라서 따옴표나 각종 특수기호 사용, 혹은 코드의 깔끔함과 간결성을 위해서 java에서 제공하는 형식이 있다. sql builder 클래스이다. 기존에는 String sql = """ select name, age from table where 1=1 and name = 'name' and age >10; """ 이런식으로 String 으로 하나로 묶었다고 하면 이 sql문을 아래와 같이 좀 더 간.. 2023. 4. 23.
[mybatis] 자바에서 mybatis 자바 포스팅에 ORM 관련 포스팅이 다수를 이루지만 예전부터 자바 개발을 해온 사람이라면 mybatis가 더욱 친근할 것이다. 이번 포스팅에서는 스프링부트에서 사용하는 @Mapper 를 사용한 mybatis를 다뤄보려고 한다. controller 단은 모두 생략하고 결국 repository 부분만 다뤄볼 예정이다. 기존에 mybatis에서는 DAO 라는 개념이 존재하였다. Data Access Object 의 약자로 코드에서 데이터베이스와 통신을 하는 부분이다. 하지만 스프링부트에서는 이 DAO부분을 mapper 가 대신 해줄수 있다. 먼저 mapper 는 interface로 구현을 하며 아래와 같이 예시를 주면 @Mapper interface MemberMapper { @Select(MemberSQL... 2023. 3. 3.
mybatis에서 <![CDATA[ ]]> 사용 이유 CDATA 란 CDATA = Character DATA, 즉 문자형 데이터를 말한다. 이렇게 선언하고 안에 문자열을 채워 넣으면 , [ ] 안에 있는 문장은 파싱되지 않고 그대로 문자열로 출력된다. 그래서 아래 참고 포스팅의 spring 예제에서 mapper 파일을 보면 이 문구 안에 쿼리가 들어가있다. 마이바티스에서 매퍼 파일은 XML으로 작성되어 있고, 파싱될 때 XML 표준으로 파싱된다. SELECT문에는 조건을 걸어 쿼리하기 위해 , = 등의 기호를 많이 사용하는데, 이것이 파싱 중에 태그로 인식되거나 하는 등의 문제가 생길 수 있다. 안에 원하는 쿼리문을 선언 한다면, 파싱하지 않고 그대로 문자열로 인식 시킬 수 있어 이런 문제를 예방할 수 있다. 동적 SQL에서는 사용하지 못하는데, 필요한 특.. 2022. 8. 2.
반응형