Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

40道MyBatis面试题带答案(很全) PDF 下载


分享到:
时间:2024-01-25 10:46来源:http://www.java1234.com 作者:转载  侵权举报
40道MyBatis面试题带答案(很全)
失效链接处理
40道MyBatis面试题带答案(很全)  PDF 下载



 
 
 
 
相关截图:
 

主要内容:


3. #{}${}的区别是什么?
#{}是预编译处理,${}是字符串替换。
Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatementset方法来赋值;
Mybatis在处理${}时,就是把${}替换成变量的值。
使用#{}可以有效的防止SQL注入,提高系统安全性。
#{} 的变量替换是在DBMS 中;${} 的变量替换是在 DBMS 外 。
 
4.当实体类中的属性名和表中的字段名不一样 ,
怎么办 ?
1种: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致。
<select id="selectorder" parametertype="int" resultetype="me.gacl.domain.order">
select order_id id, order_no orderno ,order_price price form orders where
order_id=#{id};
</select>
2种: 通过来映射字段名和实体类属性名的一一对应的关系。
<select id="getOrder" parameterType="int" resultMap="orderresultmap">
select * from orders where order_id=#{id}
</select>
<resultMap type="me.gacl.domain.order" id="orderresultmap">
<!–id属性来映射主键字段–>
<id property="id" column="order_id">
<!–result属性来映射非主键字段,property为实体类属性名,column为数据表中的属性–>
<result property="orderno" column ="order_no"/>
<result property="price" column="order_price" />
</reslutMap>

 


 
 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐