1,Mybatis 使用xml加載Sql語句,如果表名不確定,需要動態傳入
1.1 需要添加一個參數 statementType="STATEMENT"
1.2 傳遞參數需要使用map,不能使用字符串傳參數。例如下面的查詢,我需要傳入參數 map.put("tableName","table_name"),如果傳遞參數爲字符串是無法解析的;
<select id="selectByTableName" parameterType="map" resultType="map" statementType="STATEMENT">
<![CDATA[
select * from ${tableName}
]]>
</select>
statementType 有三種狀態:
statementType:STATEMENT(非預編譯),PREPARED(預編譯)或CALLABLE中的任意一個,這就告訴 MyBatis 分別使用Statement,PreparedStatement或者CallableStatement。默認:PREPARED。這裏顯然不能使用預編譯,要改成非預編譯。
${xxxx}:$將傳入的數據直接顯示生成在sql中,對於字符串數據,需要手動加上引號。