最近作了一個積分的項目,用mybatis來實現mysql數據的讀寫操做,一種是經過xml,一種是經過註解方式,下面總結一下項目常混淆的一些東西mysql
發生在sql語句的預編譯階段,"#{}"在預編譯時用?做爲參數的佔位符,"${}"表示把其便覺得其值 select * from user where username = 'lifang';sql
"#{}" --> 編譯結果爲select * from user where username = ?; "${}" --> 編譯結果爲select * from user where username = 'lifang';mybatis
"#{}"可以防止注入攻擊,由於傳入的值會被引號包裹,當成了一個字符串處理。xml
在建立表結構的時候,爲了防止某些字段出現空的狀況,一些字段都涉及了默認值。 在作數據插入處理時,仍然對其進行了賦值操做,好比設置爲null,致使插入的數據,默認字段值沒有其做用,後來想了一下,對於一些字段應該進行下面的處理才能夠 <if test="username != null" > 插入字段</if>ip
在xml中配置大於小於等比較符號時,要用<![CDATA[ >= ]]> 包裹起來,否則會報異常字符串
註解中使用mybatis特有處理,須要加<script></script>包裹mybatis特有語法, 好比<if test=""></if>字符串處理