#{}表示一個佔位符號,經過#{}能夠實現preparedStatement向佔位符中設置值,自動進行java類型和jdbc類型轉換,#{}能夠有效防止sql注入。 #{}能夠接收簡單類型值或pojo屬性值。 若是parameterType傳輸單個簡單類型值,#{}括號中能夠是value或其它名稱。java
${}表示拼接sql串,經過${}能夠將parameterType 傳入的內容拼接在sql中且不進行jdbc類型轉換, ${}能夠接收簡單類型值或pojo屬性值,若是parameterType傳輸單個簡單類型值,${}括號中只能是value。sql
parameterType:指定輸入參數類型,mybatis經過ognl從輸入對象中獲取參數值拼接在sql中。apache
resultType:指定輸出結果類型,mybatis將sql查詢結果的一行記錄數據映射爲resultType指定類型的對象。session
selectOne查詢一條記錄,若是使用selectOne查詢多條記錄則拋出異常:mybatis
org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 3spa
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:70)對象
selectList能夠查詢一條或多條記錄。io