Web Programming/Mybatis
-
#{}과 ${}, 왜 다를까?Web Programming/Mybatis 2020. 11. 5. 10:58
Mybatis에서 쿼리문을 작성할 때 다음과 같이 $를 사용하거나 #을 사용하여 파라미터를 받아온다. 언뜻 보면 큰 차이는 없어보이나 이 차이로 인해 파라미터를 받아오지 못하는 경우가 생긴다. 두 쿼리문을 정리하면 다음과 같다. #{} 파라미터가 String 형태로 넘어온 후 그 값에 ' '이 붙어 출력된다. SQL Injection이 들어올 경우 ' '으로 인해 쿼리문으로 인식하지 않아 보안에 유리하다. ${} 파라미터가 해당 컬럼의 자료형에 맞춰진 형태로 출력된다. SQL Injection이 들어올 경우 쿼리문으로 인식하여 보안에 불리하다. ' '을 붙이면 인식되지 않는 테이블이나 컬럼명을 전달하기 위해 사용한다. 코드를 보며 차이를 확인해보자. 위와 같이 파라미터 값이 String 형태로 필요한 경..
-
Mybatis 란?Web Programming/Mybatis 2020. 9. 16. 17:10
퍼시스턴스 프레임워크(Persistence Framework) : 데이터의 CRUD를 다루는 클래스 및 설정 파일들의 집합 Mybatis는 쉽게 말해 JDBC(Java DataBase Connectivity)의 기능을 손쉽게 만들어주는 퍼시스턴스 프레임워크(Persistance Framework)다. 자바에서 기본적으로 JDBC api를 제공해주지만, JDBC의 경우 1개 클래스에 반복된 코드가 존재하고, 한 파일에 Java와 SQL이 혼재하는 구조때문에 재사용에 어려움이 있는 단점이 있다. 특징 MyBatis Mapper Interface의 적은 구문으로 DB 연동을 처리 SQL 명령어를 자바 코드에서 분리하여 XML파일에 따로 관리 스프링 연동 모듈을 제공해주어 스프링 설정에 용이 구조 DataBas..