问题描述
做了一个从数据库查询数据然后传到jsp页面的小程序可以根据传给数据库的orderByType和sort来改变排序的字段和顺序如图1 2所示为什么在执行的时候似乎这个值传递不到sql语句里因为在jsp页面显示的时候总是按照默认的来显示,是不是我sql语句写错了?帮忙看下
解决方案
Map<String,Object> conditon = new Hash<String, Object>();condition.put("orderByType", orderByType);condition.put("sort", sort);在配置文件中:<select id="getByConditon" resultMap="" parameterClass="java.util.Map">select * from XX_XXX where 1=1<isNotEmpty property="orderByType" prepend=" and ">orderByType =#orderByType#</isNotEmpty>order by #sort# desc</select>
解决方案二:
将参数放入map集合中如Map<String,Object> map = new HashMap<String,Object>;map.put("type",type);然后调用SqlMapClientTemplate(这事spring支持的ibatis模版),将map传递给配置文件中,如getSqlMapClientTemplate().insert("对应sql配置文件中节点名称", map);,然后再在配置文件中指定<insert id="节点名称" parameterClass="map"> <![CDATA[ 通过##的方式取出值,如#type# ]]></insert>