Python知識(shí)分享網(wǎng) - 專(zhuān)業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
40道MyBatis面試題帶答案(很全) PDF 下載
發(fā)布于:2024-01-25 10:46:00
(假如點(diǎn)擊沒(méi)反應(yīng),多刷新兩次就OK!)

40道MyBatis面試題帶答案(很全)  PDF 下載  圖1

 

 

資料內(nèi)容:

 

 

3. #{}${}的區(qū)別是什么?
#{}是預(yù)編譯處理,${}是字符串替換。
Mybatis在處理#{}時(shí),會(huì)將sql中的#{}替換為?號(hào),調(diào)用PreparedStatementset方法來(lái)賦值;
Mybatis在處理${}時(shí),就是把${}替換成變量的值。
使用#{}可以有效的防止SQL注入,提高系統(tǒng)安全性。
#{} 的變量替換是在DBMS 中;${} 的變量替換是在 DBMS 外 。
 
4.當(dāng)實(shí)體類(lèi)中的屬性名和表中的字段名不一樣 ,
怎么辦 ?
1種: 通過(guò)在查詢(xún)的sql語(yǔ)句中定義字段名的別名,讓字段名的別名和實(shí)體類(lèi)的屬性名一致。
<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種: 通過(guò)來(lái)映射字段名和實(shí)體類(lèi)屬性名的一一對(duì)應(yīng)的關(guān)系。
<select id="getOrder" parameterType="int" resultMap="orderresultmap">
select * from orders where order_id=#{id}
</select>
<resultMap type="me.gacl.domain.order" id="orderresultmap">
<!–id屬性來(lái)映射主鍵字段–>
<id property="id" column="order_id">
<!–result屬性來(lái)映射非主鍵字段,property為實(shí)體類(lèi)屬性名,column為數(shù)據(jù)表中的屬性–>
<result property="orderno" column ="order_no"/>
<result property="price" column="order_price" />
</reslutMap>