如何在ibatis框架下使用正则表达式

raohenglena 2015-07-29 01:47:19
查了很多资料,没找到多少资料,也没理出什么头绪,求各位大牛出手相助。
需求是:需要将数据库中某一字段(字符串型)与一入参字符串进行模糊匹配,只要任意一字符相同,就匹配成功。
如: “1,2,3,4” 与 “1_3_4"就是可以匹配成功。

在mysql中, 用 select * from Resume_TBL where majorlabels regexp '["1_2"]'; 可以查询出结果。
但在ibatis中这样配置
<isNotNull prepend="AND" property="majorLabels">
<![CDATA[
majorlabels regexp '[#majorLabels#]'
]]>
</isNotNull>
总会报错
--- Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column '1_2' in 'where clause'

at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:233)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:203)
at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:268)
at com.xhxkj.xsh.dao.impl.ResumeDaoImpl.getRowCount(ResumeDaoImpl.java:78)
at com.xhxkj.xsh.service.impl.ResumeServiceImpl.getRowCount(ResumeServiceImpl.java:52)
at com.xhxkj.xsh.web.WebServerInterfaceImpl.getResumeList(WebServerInterfaceImpl.java:750)
... 30 more
...全文
297 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
raohenglena 2015-07-31
  • 打赏
  • 举报
回复
感谢各位大牛的帮助,问题已经解决了 用这种格式majorlabels regexp '['#majorLabels#,就能正确的查询出来,传参两边的方括号都要用单引号括起来。 也算是借鉴了2楼大哥的思路,所以分就给这位大哥了。 最后还是感谢各位的帮助,谢谢!
scmod 2015-07-29
  • 打赏
  • 举报
回复
majorLabels是string类型不?好像string的话他会变成带单引号的 可以把majorLabels的值改成\"majorLabels\"然后用$不用#来引用 或者拼接"||$majorLabels$||"这样 我没试过...瞎猜的.... 不知道是不是单引号双引号问题
小的传说 2015-07-29
  • 打赏
  • 举报
回复
<isNotNull prepend="AND" property="majorLabels"> <![CDATA[ majorlabels regexp '[‘||#majorLabels#||’]' ]]> </isNotNull> 用连接符连接试试,没用过mysql,oracle是可以用的 majorlabels regexp '[‘||#majorLabels#||’]'
迷林 2015-07-29
  • 打赏
  • 举报
回复
未知列'1_2'在'where子句“上 还有你这种配置我没看过 还有待考察,待我下去看看了在上来答复你吧
Java-Base64算法_创新_防止表单重复提交 JAVA企业级基础课题(HashMap那些事) 企业架构师必备技能(JAVA核心技术反射) JavaWeb之基础(手写实现Tomcat服务器) java多线程编程 纯手写实现SpringIOC实现过程 JEE企业级开发(企业级项目开发权威指南) 网络爬虫之JAVA正则表达式 手写springMVC框架 老司机带你透析springMVC内部实现方式 打造高效代码结构(java性能优化) 新版本通俗易懂_观察者模式递进时讲解 ibatis连接数据库 高并发之单(多)生产者消费者线程 高并发复用数据库链接技术详解之数据库连接池 类加载器的高级特性(自定义类加器实现加密解密) iBATIS开源主流框架(实现半自动化hibernate) 企业实用技能之详解(眼睛横纹模式验证码防止恶意登陆) 动态页面的静态化处理 图片上传技术 在springMVC中实现原始的Excel文件下载方式 企业级分布式缓存技术之(redis详解) 企业高并发基石(Tomcat服务器性能优化) spring事务处理 课程文档 高并发之基础数据MySql调优 mongodb 三级联动课程资料 应用架构之灵魂设计模式 应用架构之魂设计模式实战演练应用架构之魂设计模式实战演练 揭开springAOP神秘面纱(动态代理) Mysql性能优化之索引优化 写实现Tomcat服务器 移动后台端框架设计 公司级框架原理解析 解密公司内部框架开发(打造属于自己的专属框架) 手写Tomca之深度解析动态资源请求原理 深度解析springMVC实现原理(手写springMVC框架) Java验证码 正则黑名单爬虫系统 深入数据库连接池内部运转原理 分布式服务下的交易一致 企业必备技能之面向服务编程Web-Service详解 分布式服务下的交易一致性原理及解决 分布式服务框架(dubbo+zookpeer) WEB高级前后台分离思维-懒加载无限级树形菜单 动态页面的静态化处理 大并发展示优化,动态页面的静态化 深入理解JDK动态代理本质 企业级高并发缓存解决方案 性能优化之Oracle语句优化雾区 前后台数据验证架构源码级解析 session跨域共享 JAVANIO原理详解 高并发数据库(Mysql数据库性能优化) 软件质量管控 企业常用框架springMVC基于注解+xml配置方式实现链接 WEB服务器优化之Tomcat7性能调优 JVM概述 Java开发技术之(项目工程的日志管理) 数据库连接池原理详解 Java企业级框架之核心技术(反射) Java-Base64算法(创新_防止表单重复提交) 揭开springAOP神秘面纱之动态代理 网络爬虫之JAVA正则表达式

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧