mybatis 常見使用問題

最近作了一個積分的項目,用mybatis來實現mysql數據的讀寫操做,一種是經過xml,一種是經過註解方式,下面總結一下項目常混淆的一些東西mysql

1."${}"與"#{}"符號的區別

發生在sql語句的預編譯階段,"#{}"在預編譯時用?做爲參數的佔位符,"${}"表示把其便覺得其值 select * from user where username = 'lifang';sql

"#{}" --> 編譯結果爲select * from user where username = ?; "${}" --> 編譯結果爲select * from user where username = 'lifang';mybatis

"#{}"可以防止注入攻擊,由於傳入的值會被引號包裹,當成了一個字符串處理。xml

2.插入語句賦值問題

在建立表結構的時候,爲了防止某些字段出現空的狀況,一些字段都涉及了默認值。 在作數據插入處理時,仍然對其進行了賦值操做,好比設置爲null,致使插入的數據,默認字段值沒有其做用,後來想了一下,對於一些字段應該進行下面的處理才能夠 <if test="username != null" > 插入字段</if>ip

3. 大於/小於號

在xml中配置大於小於等比較符號時,要用<![CDATA[ >= ]]> 包裹起來,否則會報異常字符串

4.註解中使用mybatis特有處理

註解中使用mybatis特有處理,須要加<script></script>包裹mybatis特有語法, 好比<if test=""></if>字符串處理

相關文章
相關標籤/搜索