#{}와 ${}의 차이

정태규·2023년 2월 20일
0

1. #{}

.xml 파일

<insert id="insert" parameterType ="BoardDto">
  INSERT INTO board (title,content,writer)
  VALUES(#{title},#{content},#{writer})
</insert>

밑에처럼 바뀐다.

String sql = "INSERT INTO baord" 
			+"(title,content,writer)"
            +"(?,?,?)";
           
PreparedStatement pstmt = conn.PreparedStatement(sql);
int result = pstmt.executeUpdate();

#{}는 ?로 바뀌어서 값을 넣을 수 있게한다.
PreparedStatement를 사용하는게 특징이다.

2. ${}

.xml 파일

<insert id="insert" parameterType ="BoardDto">
  INSERT INTO board (title,content,writer)
  VALUES('${title}','${content}','${writer}')
</insert>

밑에처럼 바뀐다.

String sql = "INSERT INTO baord" 
			+"(title,content,writer)"
            +"('"+title+"','"+content+"','"+writer+"')";
           
PreparedStatement pstmt = conn.PreparedStatement(sql);
int result = pstmt.executeUpdate();

${}는 이름 그대로 나오기 때문에 table명 대신 쓸 수도 있고 여러가지로 활용될 수 있다. 다만, 보안에 취약할 수 있다. 따라서, 내부적으로만 사용해야 한다.
또한, 이름 그대로 나오기때문에 ''를 꼭 같이 적어줘야 한다.

0개의 댓글