热门标签 | 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;  

推荐阅读
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
  • ECharts 官方提供了丰富的图表示例,但实际项目中往往需要从后端动态获取数据。本文将详细介绍如何从后端获取数据并将其转换为 ECharts 所需的 JSON 格式,以实现动态饼图的展示。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • XAMPP 遇到 404 错误:无法找到请求的对象
    在使用 XAMPP 时遇到 404 错误,表示请求的对象未找到。通过详细分析发现,该问题可能由以下原因引起:1. `httpd-vhosts.conf` 文件中的配置路径错误;2. `public` 目录下缺少 `.htaccess` 文件。建议检查并修正这些配置,以确保服务器能够正确识别和访问所需的文件路径。 ... [详细]
  • 【问题】在Android开发中,当为EditText添加TextWatcher并实现onTextChanged方法时,会遇到一个问题:即使只对EditText进行一次修改(例如使用删除键删除一个字符),该方法也会被频繁触发。这不仅影响性能,还可能导致逻辑错误。本文将探讨这一问题的原因,并提供有效的解决方案,包括使用Handler或计时器来限制方法的调用频率,以及通过自定义TextWatcher来优化事件处理,从而提高应用的稳定性和用户体验。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 在 `UITableViewController` 中采用简洁的平面样式布局时,可以通过优化代码实现单元格扩展至屏幕边缘的效果,同时确保节标题以分组样式呈现,从而提升用户体验和界面美观度。通过这种方式,可以更好地组织和展示列表内容,使其更加清晰和有序。 ... [详细]
  • 利用爬虫技术抓取数据,结合Fiddler与Postman在Chrome中的应用优化提交流程
    本文探讨了如何利用爬虫技术抓取目标网站的数据,并结合Fiddler和Postman工具在Chrome浏览器中的应用,优化数据提交流程。通过详细的抓包分析和模拟提交,有效提升了数据抓取的效率和准确性。此外,文章还介绍了如何使用这些工具进行调试和优化,为开发者提供了实用的操作指南。 ... [详细]
  • 在Django中提交表单时遇到值错误问题如何解决?
    在Django项目中,当用户提交包含多个选择目标的表单时,可能会遇到值错误问题。本文将探讨如何通过优化表单处理逻辑和验证机制来有效解决这一问题,确保表单数据的准确性和完整性。 ... [详细]
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社区 版权所有