`
hwy1782
  • 浏览: 153753 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ibatis一个错误的排查

 
阅读更多

一段ibatis查询语句如下:

<select id="getDownloadApkURL" parameterClass="domain.BaseQueryDO" resultClass="java.lang.String">
        SELECT
            update_url
        FROM idle_apk_info
        WHERE
            state >= 0
        <isGreaterThan prepend="AND" property="apkId" compareValue="0">
            id = #apkId#
        </isGreaterThan>
        <isNotNull prepend="AND" property="apkVersionName">
            apk_version_name = #apkVersionName#
        </isNotNull>

        <isGreaterThan prepend="AND" property="apkVersionCode" compareProperty="0">
            apk_version_code = #apkVersionCode#
        </isGreaterThan>
    </select>

 

 其中BaseQueryDO的定义如下:

public @Data class BaseQueryDO extends QueryBase{

    private static final int PAGE_SIZE = 5;

    private int state;

    private int id;

    private int apkId;

    private String apkName;

    private String apkVersionName;

    private double apkVersionCode;

    @Override
    protected Integer getDefaultPageSize() {
        return PAGE_SIZE;
    }
}

 

执行期间报错:

Cause: com.ibatis.common.beans.ProbeException: There is no READABLE property named '0' in class 'domain.BaseQueryDO'; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in sqlmap/ApkInfo.xml.
--- The error occurred while preparing the mapped statement for execution.
--- Check the apk_version.getDownloadApkURL.
--- Check the parameter map.

 

使劲看了一下ibatis映射文件都没有发现错误。

没办法单条注释ibatis映射语句,发现打开

<isGreaterThan prepend="AND" property="apkVersionCode" compareProperty="0">
            apk_version_code = #apkVersionCode#
</isGreaterThan>

 就会报错。

 

估计是isGreaterThan这个函数对double型不起作用,但是在网上找了一番,没找到相关资料。

不得已,将

private double apkVersionCode;

修改成:

private Double apkVersionCode;

然后采用

 

 <isNotNull prepend="AND" property="apkVersionCode" >
            apk_version_code = #apkVersionCode#
 </isNotNull >

 来解决问题

 

ps:哪位能告诉我为毛double不能执行isGreaterThan操作么? 

分享到:
评论

相关推荐

    ibatis

    标题 "ibatis" 提到的是一个著名的开源Java持久层框架——iBATIS,它在过去的Web应用程序开发中占据了重要地位。iBATIS 提供了一种将SQL查询与Java代码分离的方法,增强了数据库操作的灵活性和可维护性。"ibatis in ...

    ibatis 开发指南 和 iBATIS-SqlMaps两本图书

    iBATIS,全称为“Integration Between Applications and SQL”,即应用程序与SQL之间的集成,是由Apache软件基金会维护的一个开源项目。它为Java应用程序提供了灵活的数据库访问层,使得开发者可以避免直接编写大量...

    一个iBatis的demo

    标题 "一个iBatis的demo" 提到的是关于 iBatis 框架的一个示例应用,这将涉及如何在实际项目中使用 iBatis 进行数据访问操作。iBatis 是一个轻量级的Java持久层框架,它允许开发者将SQL语句直接写在配置文件中,提供...

    ibatis相关的3个文档

    在IT行业中,Ibatis是一个广泛使用的Java持久层框架,它为开发者提供了灵活的数据库操作方式,使得SQL与Java代码能够紧密结合,避免了传统的ADO.NET或JDBC中的大量模板代码。本资源包含三个与Ibatis相关的文件,分别...

    ibatis学习IBATIS好资料

    - **错误排查**:学习如何读取和解析iBATIS的日志,找出并修复问题。 此外,文档还可能涉及与Spring框架的整合,因为iBATIS常与Spring一起使用,提供更强大的企业级应用支持。 总之,这个压缩包提供的资料全面覆盖...

    ibatis 框架源码剖析 书籍源代码 带有详尽注释

    8. MyBatis:iBATIS在2010年停止开发,随后发展成为MyBatis,这是一个更加强大且易用的版本,增加了如注解支持、自动结果映射等功能,但基本思想和架构仍沿袭了iBATIS。 源码剖析书籍通常会涵盖以下主题: - iBATIS...

    iBATIS-IN-ACTION

    10. 故障排查:iBATIS提供了详细的日志输出,帮助开发者调试SQL语句,找出性能瓶颈或者错误。这对于问题定位和系统优化至关重要。 综上,《iBATIS IN ACTION》这本书涵盖了iBATIS的各个方面,无论是初学者还是有...

    ibatis uitl

    标题 "ibatis util" 暗示我们讨论的是与 iBATIS 相关的一个实用工具或库,iBATIS 是一个 Java 开发中的持久层框架,它允许开发者将 SQL 查询映射到 Java 对象,从而简化数据库操作。在这个场景中,"uitl" 可能是指 ...

    log4j和ibatis配置文档

    而iBatis则是一个优秀的持久层框架,它简化了SQL操作,使得数据库访问更为灵活。本文将深入探讨log4j和iBatis的配置方法,以供开发者参考。 一、Log4j配置 1. 配置文件:Log4j的核心配置文件通常是`log4j....

    ibatis_books

    5. **问题排查与调试**:介绍在使用Ibatis过程中可能出现的问题及解决方案,如何进行有效的错误排查和性能优化。 6. **升级与迁移**:如果资源涉及到Ibatis的版本更新,可能会有如何从旧版本迁移到新版本的指导,...

    iBATIS.NET - DataMapper Application Framework

    作为一个DataMapper应用框架,iBATIS.NET的主要目标是简化数据库操作,使得开发者可以更加专注于业务逻辑,而不是底层的数据访问细节。 在iBATIS.NET中,数据映射的概念是核心,它将数据库操作与应用程序代码分离,...

    iBatis的中文文档和英文文档

    iBatis是一个优秀的Java持久层框架,它将SQL语句与Java代码分离,提供了一种灵活的数据访问方式。这个框架的主要目标是简化数据库操作,使开发者能够自由地编写SQL,同时避免了传统的JDBC代码繁琐的过程。iBatis文档...

    iBATIS中文学习资料.rar

    iBATIS是一个优秀的JavaEE框架,它在JavaEE开发中主要用作数据库访问层(DAL,Data Access Layer)的一个解决方案。作为一个轻量级的ORM(Object-Relational Mapping)框架,iBATIS允许开发者将SQL语句直接写入XML...

    iBATIS SQL Maps官方中文教程

    9. **实用技巧**:教程还会包含一些实用的提示和最佳实践,如优化SQL查询、处理大数据集、错误排查等。 10. **实例分析**:通过实际案例,你可以看到如何在项目中应用这些知识,这将有助于加深理解并提高实践能力。...

    iBATIS资料汇总

    iBATIS,全称为“Integrated By A TIS”,是一个优秀的开源持久层框架,它允许Java开发者将SQL语句与Java代码分离,通过XML配置文件或注解方式来映射SQL语句,实现了数据访问层的简化。这个资料汇总包含三个文件,...

    mysql+struts+ibatis(2)

    这不仅包括它们的基本使用,还需要了解如何进行性能调优、安全设置以及错误排查。对于“mysql+struts+ibatis(2)”的第二部分,开发者需要进一步深入学习这些组件的高级特性和最佳实践,以便在项目中实现高效稳定的...

    ibatis 开发指南

    iBatis是一个优秀的持久层框架,它允许开发者将SQL与Java代码直接映射,避免了传统的Hibernate等ORM框架在复杂查询时的性能瓶颈。 在iBatis中,SQL语句被编写在XML配置文件中,这样的设计使得数据库操作逻辑清晰...

    ibatis 项目管理

    在IT行业中,Ibatis是一个非常重要的持久层框架,它提供了SQL映射功能,使得开发者能够更灵活地控制数据库操作,而无需过多地依赖于传统的JDBC代码。"ibatis 项目管理"涉及到的是如何在实际的开发环境中有效地管理和...

    图书管理系统EXT+ibatis

    【图书管理系统EXT+ibatis】是一个基于Java技术构建的图书管理软件,主要采用了EXT作为前端框架,结合ibatis作为持久层框架,实现了高效、便捷的图书数据管理功能。EXT是一个强大的JavaScript库,提供了丰富的组件和...

    Ibatis.net框架和Spring.Net框架的实例代码

    首先,Ibatis.net是一个轻量级的持久层框架,它将SQL语句与业务逻辑分离,通过XML或注解方式定义SQL映射,使得数据库操作更加灵活和易于维护。在描述中提到的实例代码中,使用了LocalDB数据库,这是一个轻量级的、随...

Global site tag (gtag.js) - Google Analytics