-
Mybatis获取不到查询结果0
配置文件如下:<select id="searchHiddenListDetailList" parameterType="java.util.Map" resultType="AqGenerallyHidden"> SELECT GENERALLY_HIDDEN_ID AS generallyHiddenId, CHECK_DATE AS checkDate, DICT_CHECK_TYPE_ID AS dictCheckTypeId, CHECK_DEPT_ID AS checkDeptId, HIDDEN_DEPT_ID AS hiddenDeptId, LAST_DEPT_ID AS lastDeptId, GENERALLY_PROBLEMS AS generallyProblems, RECTIFICATION_STATUS AS rectificationStatus, REPORTED_USER_NAME AS reportedUserName, REPORTED_USER_ID AS reportedUserId, REPORTED_DATE AS reportedDate, RECTIFICATION_DATE AS rectificationDate, DICT_WARN_LEVEL_ID AS dictWarnLevelId, CUR_WARN_LEVEL_ID AS curWarnLevelId, HIST_WARN_LEVEL_ID AS histWarnLevelId, REVIEW_USER_NAME AS reviewUserName, REVIEW_DATE AS reviewDate, THIRD_DEPT_ID AS thirdDeptId, HAZARD_ID AS hazardId, DICT_RECTIFICATION_TYPE_ID AS dictRectificationTypeId, CREATE_USER_NAME AS createUserName, DELAY_STATUS AS isDelayAudit, DELAY_AUDIT_STATUS AS delayAuditStatus, DELAY_AUDIT_USER_ID AS delayAuditUserId, DELAY_CONFIM_DATE AS delayConfimDate, RESPON_USER_ID AS responUserId, FOUR_CONFIRM_FLAG AS fourConfirmFlag, FOUR_CONFIRM_STATUS AS fourConfirmStatus, DICT_HIDDEN_LEVEL_ID AS dictHiddenLevelId, GENERALLY_ADDRESS AS generallyAddress, DICT_SPECIALTY_TYPE_ID AS dictSpecialtyTypeId, RECTIFICATION_MANDATE AS rectificationMandate, RECT_USER_ID AS rectUserId, DICT_BELONGS_PLATE_ID AS dictBelongsPlateId, DESTROY_STATUS AS destroyStatus, GENERALLY_HIDDEN_STATUS AS generallyHiddenStatus, PENALTY_POINTS AS penaltyPoints FROM AQ_GENERALLY_HIDDEN LEFT JOIN (SELECT CONFIG_ID,DICT_HIDDEN_LEVEL_ID FROM AQ_HAZARD_INFO, AQ_HAZARD_CONFIG WHERE AQ_HAZARD_INFO.HAZARD_ID = AQ_HAZARD_CONFIG.HAZARD_ID) TEMP ON AQ_GENERALLY_HIDDEN.HAZARD_ID = TEMP.CONFIG_ID <trim prefix="WHERE" prefixOverrides="AND | OR"> <if test="subDeptId != null and subDeptId != ''"> AND SUB_DEPT_ID = #{subDeptId} </if> <if test="startDate != null and startDate != ''"> AND CHECK_DATE >= #{startDate} </if> <if test="endDate != null and endDate != ''"> AND CHECK_DATE <= #{endDate} </if> <if test="checkDeptId != null and checkDeptId == '1'.toString()"> AND CHECK_DEPT_ID NOT IN (11111111, 11111112, 11111113, 11111114, 11111115) </if> <if test="checkDeptId != null and checkDeptId != '1'.toString()"> AND CHECK_DEPT_ID = #{checkDeptId} </if> <if test="hiddenDeptId != null"> AND HIDDEN_DEPT_ID = #{hiddenDeptId} </if> <if test="deleteFlag != null"> AND DELETE_FLAG = #{deleteFlag} </if> <if test="deptId != null and deptId != ''"> AND LAST_DEPT_ID = #{deptId} </if> <if test="isAllFlag != null and isAllFlag == '1'.toString()"> AND RECTIFICATION_STATUS = 1 </if> <if test="isAllFlag != null and isAllFlag == '2'.toString()"> AND RECTIFICATION_STATUS IN (0,1) </if> </trim> ORDER BY GENERALLY_HIDDEN_ID DESC </select>
entity如下public class AqGenerallyHidden extends BaseEntity { private static final long serialVersionUID = -5069942087880879743L; /** * 一般隐患ID */ private Long generallyHiddenId = null; /** * 检查日期 */ private String checkDate = null; /** * 检查类型 */ private Long dictCheckTypeId = null; . . .
Dao如下public abstract List<AqGenerallyHidden> searchHiddenListDetailList(Map<String, String> paramMap);
service如下:public List<AqGenerallyHidden> searchHiddenListDetailList(Map<String, String> paramMap) { try { List<AqGenerallyHidden> list = ((AqGenerallyStatisticsDao) super.getBaseDao()).searchHiddenListDetailList(paramMap); return list; } catch (Exception e) { e.printStackTrace(); throw new BusinessException("[searchHiddenListDetailList]操作异常"); } }
现在程序执行不报错。能打印sql语句。sql语句可以执行,并且能查询到数据。
但是返回的List<AqGenerallyHidden>为空。
不知道为什么,求各位指教。2014年8月20日 10:19
3个答案 按时间排序 按投票排序
-
resultType="AqGenerallyHidden"这个应该就是你的Domain对象,你上述的查询没有赋值进去可能是你使用的数据库(如oracle)查询出来的结果列没有跟Domain对象中的setXXX对应上,有种情况就是AS查询后你的列如”generallyHiddenId“变成全大写的,自然在设置值得时候就设置不上,如果使用oracle建议as后的别名加上双引号""。
上述问题我没遇到,但是如果我没有加双引号返回到前台的JSON就是全部大写,所以我初略估计你也应该是这个问题(前台是使用同一SQL后台查询是有数据的前提下)2014年8月20日 17:55
相关推荐
MyBatis动态条件通用查询是数据库操作中常见的一种需求,它允许开发者在不编写大量重复SQL语句的情况下,根据传入的参数灵活地执行查询。这个功能的核心在于利用MyBatis的动态SQL特性,结合Map数据结构来构建可变的...
在MyBatis的映射XML文件中,`<collection>`标签用于表示一对多的关系,它允许我们在一次查询中获取到一个对象的所有子对象,从而构建出树形结构。例如,如果我们有一个`Department`实体类,其中包含一个`List...
MyBatis是一个流行的Java持久层框架,它简化了与数据库之间的交互,允许开发者将SQL查询直接映射到Java对象。这个文档主要介绍了MyBatis框架的核心概念和基本使用步骤。 首先,MyBatis的配置文件分为两个部分:全局...
MyBatis作为一个轻量级的持久层框架,提供了强大的SQL映射和数据访问能力,但在处理大量数据时,一次性加载所有结果可能会导致内存溢出,因此分页查询显得尤为重要。本文将详细介绍如何在MyBatis中实现定时任务列表...
结果映射用于将查询结果自动映射到Java对象,可以是单个对象,也可以是集合。MyBatis通过`resultType`或`resultMap`属性进行配置。 9. **级联操作** MyBatis支持一对多、多对多的复杂关联映射,通过`association`...
6. **结果映射**:查询结果会自动映射到Java对象,MyBatis支持基本类型和复杂类型的映射。在映射文件中,你可以定义`<resultMap>`标签来指定字段与Java属性之间的对应关系。 7. **Mapper接口与XML映射文件**:在...
首先,当Mybatis返回的查询结果为NULL时,可能的原因有很多。一种常见的原因是SQL语句的执行问题,例如查询条件不匹配或者SQL语句本身有语法错误。从提供的日志信息来看,我们看到的SQL语句是: ```sql SELECT id,a...
同时,可以利用`@ResultMap`和`@Results`注解来处理查询结果的映射。 5. **动态SQL** MyBatis的动态SQL功能使得在多表查询时能够根据条件灵活生成SQL。通过`<if>`, `<choose>`, `<when>`, `<otherwise>`, `<where>...
5. **Servlet处理结果并响应**:Servlet获取到服务类返回的分页数据后,可以将其封装成一个ModelAndView对象,或者直接在HttpServletResponse对象中设置响应内容,然后返回到JSP页面进行渲染。 6. **更新JSP页面**...
MyBatis允许我们通过配置XML映射文件或注解来指定如何将SQL查询结果映射到Java对象。在插入操作中,如果我们需要获取自增主键的值,MyBatis提供了一个特别的返回值处理机制。 3. **使用`useGeneratedKeys`和`...
ResultMap是MyBatis用来映射查询结果到Java对象的工具,它可以处理复杂的数据结构,包括一对一、一对多和多对多的关系。 1. **一对一关联查询**: 在一对一关系中,我们可以在ResultMap中定义一个association元素...
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 标题...
MyBatis-Plus(简称MP)是MyBatis框架的一个扩展,它在MyBatis的基础上提供了许多便捷的功能,包括但不限于自动填充 CRUD 操作、条件构造器、动态 SQL 等。在描述中提到的“支持连表查询的mybatis-plus”,意味着MP...
现在运行这个程序,是不是得到查询结果了。恭喜你,环境搭建配置成功,接下来第二章,将讲述基于接口的操作方式,增删改查。 整个工程目录结构如下: 除非申明,文章均为一号门原创,转载请注明本文地址,谢谢! ...
MyBatis-Plus 是一个基于 ...当执行分页查询的方法时,`PaginationInterceptor` 插件会自动处理 SQL,计算总数并分页,最后将分页后的结果返回给业务代码。这种方式极大地简化了开发过程,提高了代码的可读性和维护性。
当拦截器的`intercept`方法被调用时,它首先获取到方法的所有参数,并打印当前线程ID。然后,它遍历这些参数,检查每个参数的类型。这里重点关注的是第一个参数,因为它是`MappedStatement`,包含了SQL命令的类型。 ...
文件名称"MybatisX-idea.0.1.0.jar"表示的是插件的0.1.0版本,通常每个版本都会有不同程度的改进和修复,用户应保持更新以获取最佳体验。 5. **集成与兼容性**: MybatisX-idea插件需要IDEA支持,适用于Java开发...
3. **主键自增与回填**:对于主键自增的表,MyBatis_Plus 可以自动处理插入后的主键值,无需手动获取。 4. **分页查询**:MyBatis_Plus 内置了分页插件,能够方便地实现物理分页和逻辑分页,避免了手动编写复杂的...
3. **结果映射**:MyBatis可以自动将查询结果映射到Java对象,无需手动编写getter和setter方法。它支持复杂的数据类型映射,包括自定义的映射规则。 4. **缓存机制**:MyBatis内置了两级缓存,一级缓存在Mapper级别...
本文将深入探讨MyBatis的条件查询,以及如何通过搜索关键字来获取所需信息。 MyBatis是一个轻量级的ORM(对象关系映射)框架,它允许开发者用SQL语句直接操作数据库,同时又能与Java对象进行绑定,实现了数据的灵活...