>  기사  >  mybatis에서 #과 $의 차이점은 무엇입니까

mybatis에서 #과 $의 차이점은 무엇입니까

青灯夜游
青灯夜游원래의
2019-04-03 15:15:5954821검색

mybatis에서 #과 $의 주요 차이점은 다음과 같습니다. #들어오는 매개변수는 SQL에서 문자열로 표시됩니다. #이 방법은 SQL 삽입을 크게 방지할 수 있습니다. $들어오는 매개변수는 SqL에서 들어오는 값으로 직접 표시되지만 $메서드는 불가능합니다. SQL 주입을 방지합니다.

mybatis에서 #과 $의 차이점은 무엇입니까

MyBatis는 맞춤형 SQL, 저장 프로시저 및 고급 매핑을 지원하는 탁월한 지속성 계층 프레임워크입니다. MyBatis는 거의 모든 JDBC 코드와 매개변수 수동 설정 및 결과 세트 검색을 방지합니다. MyBatis는 간단한 XML 또는 주석을 사용하여 기본 정보, 매핑 인터페이스 및 Java POJO(Plain Ordinary Java Object, 일반 Java 개체)를 데이터베이스의 레코드로 구성하고 매핑할 수 있습니다.

동적 SQL은 mybatis의 주요 기능 중 하나입니다. 매퍼에 정의된 매개변수가 xml에 전달된 후 mybatis는 쿼리하기 전에 이를 동적으로 구문 분석합니다. mybatis는 동적 SQL을 지원하는 두 가지 구문을 제공합니다: #{} 및 ${} 둘 다 필요한 매개변수를 sql 문에 동적으로 전달합니다.

mybatis에서 #과 $의 차이점은 무엇입니까

1. 전달된 매개변수는 SQL에서 다르게 표시됩니다

#전달된 매개변수는 SQL에서 문자열(문자열)로 표시됩니다. 자동으로 전달된 데이터에 대한 큰따옴표입니다.

예: 다음 SQL을 사용하세요

select id,name,age from student where id =#{id}

우리가 전달하는 매개변수 ID가 "1"인 경우 위 SQL의 구문 분석은 다음과 같습니다.

select id,name,age from student where id ="1"

$ 전달된 매개변수는 SQL에서 전달된 값으로 직접 표시됩니다.

예: 다음 SQL을 사용하세요.

select id,name,age from student where id =${id}

우리가 전달하는 매개변수 ID가 "1"인 경우 위 SQL의 구문 분석은 다음과 같습니다.

select id,name,age from student where id =1

2 # SQL 삽입(문장의 접합) 위험을 방지할 수 있습니다. $는 SQL 주입을 방지할 수 없습니다.

3. $ 메서드는 일반적으로 테이블 이름과 같은 데이터베이스 개체를 전달하는 데 사용됩니다.

4. 대부분의 경우 #을 자주 사용합니다. 일반적으로 #을 사용할 수 있으면 $를 사용하지 마세요. 예를 들어 MyBatis를 정렬할 때 동적 매개변수를 사용하는 경우에는 $를 사용해야 합니다. # 대신 $ 사용에 주의해야 합니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !

위 내용은 mybatis에서 #과 $의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.