`
marquis
  • 浏览: 3884 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ibatis关于模糊查询不能用#的问题

阅读更多
      最近在开发一个项目,用到的是Ibatis,因为本人以前开发都是用的Hibernate,所以对Ibatis也是接触的并不多。在昨天的开发过程中,发现写模糊查询语句时用#给参数赋值时一直报找不到属性的异常,起初还一直以为是paramMap在赋值时出现问题,如下

<isNotNull property="name" prepend="and">
    name like '#name#%'
</isNotNull>


      这是我起初的写法,结果报

com.ibatis.common.jdbc.exception.NestedSQLException:  
--- The error occurred while applying a parameter map. 
--- Check the goods.ibatorgenerated_countByExample-InlineParameterMap. 
--- Check the parameter mapping for the 'name' property. 
--- Cause: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).

       解决办法也很简单,因为模糊查询是针对字符串而言的,如果遇到两个单引号要包含一个参数,则不能再用#来引用变量了,而应该改为$,比如:'$name$%',当然,也可以使用  #name# || '%' 或者conact(#name#,"%")来绕过此问题。
分享到:
评论
1 楼 marquis 2011-12-29  
纠正一下,最后连接字符串的方法应该叫 concat 写反了

相关推荐

    iBATIS模糊查询

    iBATIS模糊查询 iBATIS模糊查询是指使用iBATIS框架实现模糊查询的方法。模糊查询是指在数据库中搜索包含指定字符串的记录,通常...iBATIS模糊查询可以帮助开发者快速实现模糊查询功能,但需要注意安全性和性能问题。

    IBatis完成单表基本的数据库操作 模糊查询

    标题 "IBatis完成单表基本的数据库操作 模糊查询" 涉及到的是使用iBatis这个轻量级的持久层框架进行数据库的基本操作,特别是模糊查询。iBatis是一个优秀的SQL映射框架,它允许开发者将SQL语句与Java代码分离,提高...

    操作数据库 iBATIS查询

    当需要执行一个模糊查询时,通常会使用`LIKE`关键字配合通配符`%`。例如,以下SQL语句将查询所有姓“张”的学生: ```sql SELECT * FROM T_STUDENT WHERE S_NAME LIKE '张%'; ``` 在iBATIS中,可以使用类似的方法...

    ibatis的动态查询

    -- 模糊查询不能用 #,# 在是用 prepareStatement 的? 插入参数,$ 是文本替换 --&gt; notelike '%$note$%' ``` #### 三、使用 Map 传递参数 **知识点3:** 使用 Map 作为参数传递到 SQL 语句中,可以更加灵活...

    07_ibatis教程_模糊查询实体对象.rar )

    掌握Ibatis的模糊查询技术,不仅可以使开发者编写出更灵活、可维护的代码,还能提高数据库查询性能,避免全表扫描,降低数据库负载。 总的来说,Ibatis的模糊查询功能是其强大之处之一,它使得开发者能够更加方便地...

    07_ibatis教程_模糊查询实体对象.zip

    在本教程"07_ibatis教程_模糊查询实体对象"中,我们将深入学习如何使用iBatis这个流行的Java持久层框架进行模糊查询操作,尤其是在处理实体对象时。iBatis作为一个轻量级的ORM(Object-Relational Mapping)工具,它...

    ibatis sql语句对条件中特殊字符% # 处理

    特别是在使用类似`LIKE`这样的操作符时,如果用户输入的数据中含有`%`、`_`或`#`等特殊字符,那么这些字符可能会被SQL解释器误认为是通配符或者特殊符号,导致查询结果不符合预期。本文将详细介绍如何在ibatis框架下...

    ibatis总结 ibatis ibatis ibatis ibatis

    - 在编写SQL时,应避免使用全模糊匹配`LIKE '%text%'`,而应尽可能使用带有前缀或后缀的模糊匹配,如`LIKE 'text%'`,这可以显著提升查询效率。 - 使用`EXISTS`子查询通常比直接关联查询更高效,尤其是在数据量大...

    ibatis的实现(包含模糊查询、关联查询、增删改查)

    Ibatis,全称为“SQL Map”,是一个开源的Java持久层框架,它允许...以上就是关于Ibatis实现模糊查询、关联查询以及增删改查的基本知识。在使用过程中,还需注意SQL注入防护、性能优化等问题,确保代码的安全性和效率。

    ibatis Example使用

    根据提供的文件信息,我们可以从中提炼出与ibatis及其Example特性相关的知识点。以下是对这些知识点的详细阐述: ### 1. **ibatis简介** ...希望本文能对你理解和使用ibatis及其Example特性提供一定的帮助。

    常用ibatis配置

    在iBatis配置中,可以使用等标签来确保只有当日期字段不为空时,才会将相应的日期范围查询条件拼接到SQL语句中。 6. list集合:当需要根据一组特定的值进行查询时,例如IN操作,iBatis允许将list集合作为参数传递。...

    ibatis常见案例

    模糊查询常用于文本搜索,Ibatis支持在SQL语句中使用`LIKE`关键字结合通配符进行模糊匹配。例如,用户输入的部分关键词可以与数据库中的数据进行比较。 ```xml SELECT * FROM users WHERE username LIKE CONCAT('...

    iBATIS课件

    iBATIS课件 iBATIS简介 搭建环境 配置文件 读取配置 基本的CRUD操作 模糊查询 iBATIS代码生成工具iBATOR 优缺点 选择Hibernate还是iBATIS

    jsf+ibatis增删改查

    模糊查询通常涉及SQL的`LIKE`操作,可以在iBatis的映射文件中配置,然后在JSF页面提供搜索框,将输入传递给后台进行模糊匹配。 9. **错误处理和验证**:JSF提供了内置的验证机制,可以对用户输入进行校验,防止无效...

    ibatis_学习文档

    与 Hibernate 相比,IBatis 提供了更多的控制权,特别适合那些需要对 SQL 查询进行精细化控制的应用场景。 #### 二、IBatis 配置文件详解 在给定的示例中,可以看到一个典型的 IBatis 配置文件结构。该文件定义了...

    ibatis sql生成工具

    此外,该工具可能还包含了对复杂的查询条件的支持,比如模糊搜索、分页查询等,这些在生成的SQL中会以动态SQL的形式出现,使得代码更加简洁和易于维护。对于大型项目而言,这种自动化生成的功能能够显著减少编码时间...

    ibatis-sqlmap-2.3.0中sqlmap支持通配符

    在Ibatis的XML配置文件中,可以使用`&lt;if&gt;`标签来插入动态SQL部分,结合`#{}`占位符和通配符,实现动态模糊查询。例如: ```xml SELECT * FROM my_table WHERE column_name LIKE #{searchKeyword} ``` 在...

    ibatis框架实现的增删改查

    本篇文章将深入探讨如何使用Ibatis框架实现对`student`表的增删改查操作,包括模糊查询以及利用序列自动生成主键。 首先,我们来理解Ibatis的基本概念。Ibatis是由Apache基金会维护的一个开源项目,它是一个SQL映射...

    ibatis笔记

    - `aname like '%$aname%$'`:模糊查询。 - `&lt;/isNotEmpty&gt;` - `&lt;/dynamic&gt;` #### 三、Java工具类实现 接下来是`Tools.java`工具类的部分代码片段。 ```java private static SqlMapClient sqlMapper; static {...

Global site tag (gtag.js) - Google Analytics