ibatis传参问题

问题描述

做了一个从数据库查询数据然后传到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>

时间: 2024-11-02 02:01:31

ibatis传参问题的相关文章

Mybatis中#{}和${}传参的区别及#和$的区别小结_java

最近在用mybatis,之前用过ibatis,总体来说差不多,不过还是遇到了不少问题,再次记录下, 比如说用#{},和 ${}传参的区别, 使用#传入参数是,sql语句解析是会加上"",比如 select * from table where name = #{name} ,传入的name为小李,那么最后打印出来的就是 select * from table where name = '小李',就是会当成字符串来解析,这样相比于$的好处是比较明显对的吧,#{}传参能防止sql注入,如果

js中window.showModalDialog各浏览器居中和传参实例兼以及一些兼容性问题

  浏览器居中以及传参实例 window.showModelDialog可设置center参数为yes,保证其在子窗口在父窗口居中. 但是该参数只对IE浏览器有效,对火狐无效,只有通过计算模态窗口的居中位置.   解决办法 function openShowModalDialog(url,param,whparam,e){    // 传递至子窗口的参数  var paramObj = param || { };    // 模态窗口高度和宽度  var whparamObj = whparam

图片-jsp页面传参问题(参数长度太长)

问题描述 jsp页面传参问题(参数长度太长) < img src=""../admin/image-read.action?icode=${data.icode}""/> 其中icode是一个图片的二进制数据串,比较长,传不到后台.有什么其他方法? 解决方案 这个方式肯定不行啊,虽然没明白你是不是直接从前台获取一个本地图片然后在jsp中转成二进制的,但是这样肯定传不了的.可以使用ajax form提交提交后也不刷新当前页面. 解决方案二: jsp页面传到

Javascript实例教程:点击传参方法和鼠标事件方法

文章简介:从这张开始就和大家说一些实用的效果的写法.当然首当其冲的就是我们可爱的TAB选项卡,用JQ写选项卡当然是很方便的而且方法也很多.其实用原生的JS写选项卡方法也很多. 从这张开始就和大家说一些实用的效果的写法.当然首当其冲的就是我们可爱的TAB选项卡,用JQ写选项卡当然是很方便的而且方法也很多.其实用原生的JS写选项卡方法也很多.下面我就写几个给大家看看一,点击传参方法<script>function tab(dom){var list = document.getElementByI

jsp页面传参乱码的解决方法

 本篇文章主要是对jsp页面传参乱码的解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 jsp页面传参乱码的解决方法   jsp页面js:   encodeURIComponent要使用两次 encodeURIComponent(encodeURIComponent(userAccount));   java: String  userAccount = java.net.URLDecoder.decode(userAccount,"UTF-8");/*需要处理异常*/

jsp中文页面乱码与传参乱码

  页面乱码 这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可 代码如下   <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="err.jsp" %> 数据库乱码 这种乱码会使你插入数据库的中文变成乱码,或者读出显

PHP传参之传值与传址的区别

  PHP传参之传值与传址的区别         这篇文章主要介绍了PHP传参之传值与传址的区别,十分的简单,大家通过实例简单对比下就明白了,有需要的小伙伴可以参考下. 废话不多说,先来看段代码 ? 1 2 3 function test(&val){ return $val; } 其中为什么用到&进行传参呢,有什么好处? 传址是允许在函数内部进行改变的意思,比如: ? 1 2 3 4 5 6 7 $test = "hello"; function myFun(&

js调用Flex中的方法并向flex中传参及flex调用js示例

首先,有了一个swf文件,test.swf,同时也有一个自动生成的html文件,test.html. 然后,在另外一个文件,test.jsp中,通过iframe,引入了test.html,即引入了swf. 现在想要在test.jsp中,向flex传参,并调用flex中的方法,我采用的方法是: 首先,在jsp中写一个调用flex的方法,如下 复制代码 代码如下: function initSWF(){ //得到swf的object var obj = window.frames["rightfra

解决js UTF-8传参到GBK页面乱码问题

  js UTF-8传中文参数到GBK,之所以不行是因为其字符长度不同,1个中文在UTF-8中为3个字符,而GBK为2个字符,所以导致encodeURL后不同编码内容不一致. 要转换编码,怎么都离不开服务器,所以最佳办法是做一个中转页面,你可以提示"正在跳转到xxx",但是这个页面的实质是处理中文参数问题,通过js,用URl传参到中转页面,中转页面再通过$_GET来判断是否有参数,有则用iconv转换编码,然后再组合转换好的URL参数,跳转到GBK页面. 下面是作者的一个简单的中转业,