`
lpacec
  • 浏览: 172223 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

ibatis中文与like的问题

阅读更多
ibatis 用得正爽,可突然遇上表中的列名是中文,傻眼了,根本不识别列名,全是乱码,怎么办?发现处理办法非常简单,就是把映射文件的编码改为 GB2312 就可以了:
<?xml version="1.0" encoding="GB2312"?>


like在不同的数据库好像用法都不一样
select * from table where colName like '%' || #value# || '%'不起作用。按照官方的解释,如果你想要的查询是:

select * from foo where value like 'x%'
那么你在 xml 映射文件中可能会写:



select * from foo where value like #parm#
但是经过 ibatis 转换以后会变成:


select * from foo where value like ?
所以你就什么也查不到了。怎么解决呢?有两种方法,一是自己处理参数 "x%",也就是自己先在程序里面对传入的参数包裹一下,就像这样:


String param = "%" + param + "%"
然后再把 param 传给 ibatis,这方法确实有效,但会使你很容易搞不清楚什么时候在哪里加了 like 了。第二种方法就是写成:


select * from foo where value like #parm# || '%'(对我不起作用)
要使它对大小写不敏感,还可以写成:


select * from foo where upper(value) like '%%' || upper(#parm#) || '%%'(没有实验过)
总之,目前还没有比较满意的解决 like,大家有什么好办法吗?

分享到:
评论
3 楼 lawuu 2008-08-20  
http://lawuu.iteye.com/blog/230791
2 楼 peigen 2008-05-26  
select * from foo where upper(value) like '%%' || upper(#parm#) || '%%'(没有实验过)


我试过,可以用的
1 楼 bjhawk 2007-09-18  
select * from foo where value like '%$parm$%'

相关推荐

    ibatis总结 ibatis ibatis ibatis ibatis

    Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...

    解决IBatis缓存动态字段问题

    #### 背景与问题描述 在使用IBatis框架处理数据库操作时,可能会遇到动态数据表名、动态字段名的情况。这种情况下,由于IBatis的缓存机制,可能导致字段找不到的问题。具体表现为:当第一次查询某个表时,IBatis会...

    ibatis开发过程取值问题

    Ibatis的主要目标是解决对象关系映射(ORM)的问题,它允许开发者编写XML或注解形式的SQL映射文件,将SQL语句与Java代码分离,提高了代码的可读性和可维护性。在这个过程中,Ibatis提供了一种动态SQL机制,通过占位...

    ibatis官方中文文档

    本文档集是"Ibatis官方中文文档",包含两份重要的资源:《iBATIS-SqlMaps-2_cn.pdf》和《iBATIS-SqlMaps-2-Tutorial_cn.pdf》。这两份文档详尽地介绍了iBATIS这一持久层框架的使用方法,特别是针对存储过程的调用...

    ibatis乱码解决方法(ibatis独立)

    在IT行业中,数据库操作是必不可少的一部分,而Ibatis作为一款流行的Java持久层框架,它使得SQL与Java代码更好地结合,提供了灵活的数据库操作方式。然而,数据处理时遇到的编码问题,如乱码,常常会给开发者带来...

    iBatis net版中文 1.6的

    在标签中,"iBatis"是关键词,强调了这个话题与iBatis框架密切相关。iBatis的主要特点包括: 1. SQL映射:通过XML或注解定义SQL语句,使得SQL与Java代码分离,易于维护。 2. 动态SQL:支持在SQL语句中进行条件判断...

    ibatis入门与ibatis迭代的用法

    此外,iBatis还支持Map迭代,当查询结果中的列名与Java对象的属性不完全匹配,或者需要处理多表联查结果时,Map迭代非常有用。例如: ```java List, Object&gt;&gt; maps = sqlSession.selectList(...

    iBatis与数据库交互

    五、iBatis与MyBatis的区别与联系 MyBatis是iBatis的升级版,它继承了iBatis的所有优点,并做了很多改进,比如引入了注解支持、增强了对Spring的整合等。MyBatis更加现代化,社区活跃,持续维护,而iBatis则停止了...

    Spring与iBATIS的集成

    Spring与iBATIS的集成 iBATIS似乎已远离众说纷纭的OR框架之列,通常人们对非常流行的Hibernate情有独钟。但正如Spring A Developer's Notebook作者Bruce Tate 和Justin Gehtland所说的那样,与其他的OR框架相比...

    ibatis demo,ibatis例子,ibatis示例

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,从而更好地管理数据库操作。Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,...

    ibatis2.0中文API

    iBATIS 2.0 是一个著名的开源持久层框架,它允许Java开发者将数据库操作与应用程序逻辑相分离,实现SQL语句的灵活控制。在iBATIS 2.0中文API中,我们可以深入理解这个框架的核心功能和用法,包括一对多、多对一的...

    ibatis3.1官方中文帮助文档

    《iBatis 3.1 官方中文帮助文档》是开发者们学习和掌握iBatis框架的重要参考资料,尤其对于那些使用中文作为主要工作语言的程序员来说,这是一份非常实用的指南。iBatis是一个优秀的持久层框架,它允许开发者将SQL...

    ibatis in action 中文版7ibatis in action 中文版7

    4. **社区支持**:作为一个成熟的开源项目,ibatis拥有庞大的用户群体和活跃的社区支持,这对于解决使用过程中遇到的问题非常有帮助。 ### 三、ibatis的应用场景 - **数据访问层的抽象**:ibatis可以作为数据访问...

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    iBatis的核心在于它的SQL映射机制,它将数据库操作与业务逻辑解耦,使得开发者可以自由地编写SQL,同时保持代码的可维护性。本文将通过分析iBatis的源码,深入探讨其设计理念和实现机制。 一、iBatis架构概述 ...

    ibatis 中文手册

    **Ibatis 中文手册概述** Ibatis 是一个优秀的开源持久层框架,它允许开发者将 SQL 查询与 Java 代码...通过深入学习并熟练运用 Ibatis,开发者可以有效地处理 Java 应用中的数据访问问题,提高开发效率和代码质量。

    ibatis-api中文(真的中文)

    这个“ibatis-api中文(真的中文)”资料集合包含了iBATIS的API文档以及教程,帮助开发者更好地理解和使用iBATIS。 首先,`iBATIS-SqlMaps-2-cn.pdf`是iBATIS SQL Maps 2.0的中文版教程。在该文档中,你可以找到...

    ibatis与spring整合

    ### ibatis与Spring框架整合详解 #### 一、ibatis简介 ibatis是一个开源的、基于Java的持久层框架,它提供了SQL映射的方式来进行数据库访问。与Hibernate等其他ORM框架相比,ibatis更加轻量级,对于那些只需要简单...

    ibatis教程,ibatis帮助文档

    SQL Maps是iBATIS的核心,通过XML文件定义了Java对象与SQL语句之间的映射,大大减少了数据库操作的代码量。这种映射方式使得SQL语句的管理更加灵活,也更易于理解和维护。 二、iBATIS与传统JDBC的比较 iBATIS与JDBC...

Global site tag (gtag.js) - Google Analytics