先说下问题产生的背景: 最近在做一个用到MyBatis的项目,其中有个业务涉及到关联查询,我是将两个查询分开来写的,即嵌套查询,个人感觉这样更方便重用: 关联的查询使用到了动态sql,在执行查询时就出现了如下错误:Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.Integer' 因为出现了这个问题,
比较:>,<,=,>=,<=,<>(!=) 逻辑:AND,OR,NOT 范围:BETWEEN...AND... 范围:IN,NOT IN 判空:IS NULL, IS NOT NULL 模糊:LIKE,NOT LIKE("_"匹配一位字符,"%"匹配任意位字符) 存在:[NOT] EXIST,配合MINUS使用可实现其他很难实现的结果集比较查询 数据区分大小写: 日期范围表示: 判空的两种写法: NOT IN的两种写法: IN范围
今天,在开发的过程中发现了一个特别奇怪的问题:access中like查询时候,在Access数据库中执行,发现可以查询出结果,这是在数据库上执行,select * from KPProj where KpName like '*测试*',但是同样的语句在c#程序中却查询为空,这是什么情况呢? 这个问题真让人纠结,通过以前的开发经验,access中like需要用*号,但是sqlserver oracle数据库中要用标准的%,为什么此时就不行呢?经过搜索资料,最后发现是连接access驱动程序的问题
/* 设置memcache锁,解决查询过多email查询为空的问题 Begin */ $mmc = new Memcache; $mmc->connect('127.0.0.1', 11211) or die ("Could not connect"); if(!empty($mmc)){ $sending=$mmc->get('sending'); $sending=intval($sending); }else{ //如果不能使用memcache,则以不影响发送为主 $
mybatis判断集合为空或者元素个数为零: <if test="mlhs != null and mlhs.size() != 0"> and t.mlh_name not in <foreach collection="mlhs" item="item1" open="(" close=")" index="i" separator=",">