$和#
1. #将数据都当成一个字符串,会对自动传入的数据加一个双引号。如:SELECT * from xxx WHERE kw=#{name},如果传入的值是admin,那么解析成sql时的值为"admin"
2. $将传入的数据直接显示生成在sql中。如:SELECT * from ${name},如果传入的值是admin,那么解析成sql时的值为 SELECT * from admin
3. 数据加双引号特点导致, #方式能够很大程度防止sql注入。$方式无法防止Sql注入(个人理解)。
4. $方式一般用于表名,字段
5. 一般能用#的就别用$.
数据返回JSONObject
1、字段名要标明,不要用 * 简写
2、@Param包不要引错了org.apache.ibatis.annotations.Param*
public JSONArray getList(@Param("id") int id);
<select id="getList" resultType="JSONObject">
SELECT id,name from xxx WHERE id=#{id}
</select>