您的位置:首页 > 其它

记录学习的点滴(MyBatis中#{}与${}区别)

2017-03-20 10:40 423 查看
#{}会将传入的数据转换为字符串,有效的防止sql注入,而${}则不会将传入数据转换为字符串。
方法调用
// String userName, String password, int userCode
UserInfo user = new UserInfo("wing", "WEJH", 4536);
myTestService.getPrimaryKey(user);

Mapper.xml
<insert id="getPrimaryKey" parameterType="com.test.model.UserInfo">
<selectKey keyProperty="userId" order="BEFORE" resultType="java.lang.Integer">
select IF_KIKAKU.SEQ_USER_ID_WING.NEXTVAL from DUAL
</selectKey>
INSERT INTO if_kikaku.test_user_m (
user_id,
user_cd,
password
) VALUES (
${userId},
${userCode},
#{password}
)
</insert>

控制台打印SQL
[●●●●] DEBUG [main] getPrimaryKey.debug(132) | ==>  Preparing: INSERT INTO if_kikaku.test_user_m ( user_id, user_cd, password ) VALUES ( 16, 4536, ? )

[●●●●] DEBUG [main] getPrimaryKey.debug(132) | ==> Parameters: WEJH(String)






内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: