热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于不确定字段查询问题-mybatis

这是查询表单,可以输入任意数目的查询条件,这是mybatis配置文件中的查询方法我使用post提交方式,若条件不填写完的话,根本找不到路径,报404我改用get方式,则可以找

这是查询表单,可以输入任意数目的查询条件,

这是mybatis配置文件中的查询方法

我使用post提交方式,若条件不填写完的话,根本找不到路径,报404
我改用get方式,则可以找到,但是查询结果为空

9 个解决方案

#1


这和你的Mybatis是没关系的,sql写的是没问题的(除非你的resultMap,可能有问题)~主要还是你页面到后台这一块的逻辑有问题~仔细看一下你查询这一块的页面和后台把

#2


这你自己调试一下就行了,你可以先用firebug或者chrome的调试模式下,看看你post的参数是什么,打断点到你请求的url,即你自己的控制层(controller或者是action),看看方法能不能进来,不能进来的话很有可能就报404错误了.
这样的话,问题初步会断定你是因为参数不匹配才造成的404报错.
常见解决有几种:
1.如果你前台是用jquery做的话,直接传参可以用$('#formID').serialize().
或者你就可以用ajax的方式一个个传递参数就好
data{
  param1:param1Value,
 param2:param2Value
 .....
}
2.如果你controller层用的springmvc的话,可以将参数那里设置以下require=false就好了.

希望对楼主有帮助

#3






引用 2 楼 software_gemeng 的回复:
这你自己调试一下就行了,你可以先用firebug或者chrome的调试模式下,看看你post的参数是什么,打断点到你请求的url,即你自己的控制层(controller或者是action),看看方法能不能进来,不能进来的话很有可能就报404错误了.
这样的话,问题初步会断定你是因为参数不匹配才造成的404报错.
常见解决有几种:
1.如果你前台是用jquery做的话,直接传参可以用$('#formID').serialize().
或者你就可以用ajax的方式一个个传递参数就好
data{
  param1:param1Value,
 param2:param2Value
 .....
}
2.如果你controller层用的springmvc的话,可以将参数那里设置以下require=false就好了.
希望对楼主有帮助


意思是在所有的参数前面都加上一个require=false吗,刚刚试过了,不行,错误还是400,难道除了用js先判断各个字段里的值是否为空,然后通过ajax提交就没有别的办法了吗,我能不能将controller层的方法里设置为可变参数。

#4


???为何会404?  

同样的springmvc+jsp ,同样的mybatis参数分页


   and order_id = #{orderId,jdbcType=BIGINT}
  
    0">
   and order_id in 
  
            #{item}
        
  
  
   and order_type_id = #{fromOrderId,jdbcType=BIGINT}
  
  
   = #{startFinDate,jdbcType=TIMESTAMP} ]]>
  
  
  
  



#5


1、那些Integer参数,初始值是0 ,你不传参数,默认会传个0去查询 这个需要谨记

2、你页面404与mybatis是没关系的,与数据更没关系,肯定是你controller层写的有问题

3、你这种分页提交,参数记得回传

#6


引用 4 楼 shijing266 的回复:
???为何会404?  

同样的springmvc+jsp ,同样的mybatis参数分页


   and order_id = #{orderId,jdbcType=BIGINT}
  
    0">
   and order_id in 
  
            #{item}
        
  
  
   and order_type_id = #{fromOrderId,jdbcType=BIGINT}
  
  
   = #{startFinDate,jdbcType=TIMESTAMP} ]]>
  
  
  
  

是400,我写错了,现在很明显的是这个跟mybatis没关系
是请求出问题了,请求参数的个数是不确定的,

然后无法映射到对应的方法中去,所以就400了。

#7


还搞得这么麻烦,为啥不用spring mvc自带的model参数?

页面照样用${变量名}取就是

@RequestMapping(value="/orderList" ,method = RequestMethod.POST)
public ModelAndView orderBuyPage(HttpServletRequest request ,Model model,
@RequestParam(value="pageNum" ,defaultValue="1")String pageNum,
@RequestParam(value="pageSize" ,defaultValue="10")String pageSize){
String orderIdOrProdName = request.getParameter("orderIdOrProdName");
String fromOrderId = request.getParameter("fromOrderId");
String startFinDate = request.getParameter("startFinDate");
String endFinDate = request.getParameter("endFinDate");
String sellOrgName = request.getParameter("sellOrgName");
String evaluate = request.getParameter("evaluate");
String orderStatus = request.getParameter("orderStatus");
String trnsctWay = request.getParameter("trnsctWay");

List listTrn = orderService.getTrnsctList();
model.addAttribute("listTrn", listTrn);
List listOrderType = orderService.getOrderTypeList();
model.addAttribute("listOrderType", listOrderType);
List listStatus = orderService.getOrderStatusList();
model.addAttribute("listStatus", listStatus);
//分页查询订单列表
PageBO page = orderService.queryPageByBuyCondition(orderIdOrProdName, 
fromOrderId, startFinDate, endFinDate, sellOrgName, 
evaluate, orderStatus, trnsctWay, pageNum, pageSize);
model.addAttribute("orderIdOrProdName", orderIdOrProdName);
model.addAttribute("fromOrderId", fromOrderId);
model.addAttribute("startFinDate", startFinDate);
model.addAttribute("endFinDate", endFinDate);
model.addAttribute("sellOrgName", sellOrgName);
model.addAttribute("evaluate", evaluate);
model.addAttribute("orderStatus", orderStatus);
model.addAttribute("trnsctWay", trnsctWay);
model.addAttribute("page", page);
return getModelAndView("/order/buyer/buyer_order_list");
}

#8


引用 5 楼 shijing266 的回复:
1、那些Integer参数,初始值是0 ,你不传参数,默认会传个0去查询 这个需要谨记

2、你页面404与mybatis是没关系的,与数据更没关系,肯定是你controller层写的有问题

3、你这种分页提交,参数记得回传


记得你查询的参数回传

#9



SELECT 
`open_price`, 
`close_price`, 
`high_price`, 
`low_price`, 
`deal_number`, 
`deal_amount`, 
`deal_date`, 
`win_rate`, 
`emotional_indicator`, 
`profit_loss_ratio`, 

  #{singleField} index_field


median index_field

FROM 
 ew_dayline e INNER JOIN stock_basic_info s ON e.deal_date = s.info_date
 where e.exponent_id = 1
 ORDER BY deal_date ASC;  

推荐阅读
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • springboot项目引入jquery浏览器报404错误的解决办法
    本文介绍了在springboot项目中引入jquery时,可能会出现浏览器报404错误的问题,并提供了解决办法。问题可能是由于将jquery.js文件复制粘贴到错误的目录导致的,解决办法是将文件复制粘贴到正确的目录下。如果问题仍然存在,可能是其他原因导致的。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 本文总结和分析了JDK核心源码(2)中lang包下的基础知识,包括常用的对象类型包和异常类型包。在对象类型包中,介绍了Object类、String类、StringBuilder类、StringBuffer类和基本元素的包装类。在异常类型包中,介绍了Throwable类、Error类型和Exception类型。这些基础知识对于理解和使用JDK核心源码具有重要意义。 ... [详细]
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • 本文介绍了在win7电脑上进行文件加密的方法,包括利用NTFS的EFS进行加密和使用Win7旗舰版的Bitlocker加密整个分区。同时推荐了超级加密3000、宏杰加密工具和超级盘加密工具等多种加密软件,这些软件具有快速的加密速度和高强度的加密功能,可以防止文件的删除、复制和移动。此外,还强调了保持加密密钥的重要性,以免重装系统后无法打开已加密的文件。最后,提醒读者选择绿色软件,方便使用。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • 本文介绍了使用FormData对象上传文件同时附带其他参数的方法。通过创建一个表单,将文件和参数添加到FormData对象中,然后使用ajax发送POST请求进行文件上传。在发送请求时,需要设置processData为false,告诉jquery不要处理发送的数据;同时设置contentType为false,告诉jquery不要设置content-Type请求头。 ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
    web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
  • angular.element使用方法及总结
    2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
author-avatar
mobiledu2502918033
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有