一个关于Spring中使用SQL的问题,有难度!
TABLE test:
========================
ID Date_
------- --------------
1 2006-01-01
2 2006-01-02
3 2006-01-03
4 2006-01-04
5 2006-01-05
我继承MappingSqlQuery:
...
super(ds, "select * from test where Date_ in (?)");
declareParameter(new SqlParameter(Types.VARCHAR));
compile();
...
现在的问题是,如果我想实现如下的逻辑:
select * from test where Date_ in ('2006-01-01','2006-01-02');
按照上面的方法是不可以的,因为对于占位符(?)我绑定了一个VARCHAR参数,但是实际上'2006-01-01','2006-01-02'
这是两个VARCHAR参数,按照SQL的理解,上面的语句应该是:
select * from test where Date_ in (''2006-01-01','2006-01-02''),
大家可以看出来,我们的数据库里面并没有'2006-01-01','2006-01-02'这样的一条记录,所以返回的就是空记录。
实在没有办法,只能连接SQL语句,用JdbcTemplate来实现了,但是这样我又享受不了MappingSqlQuery的乐趣,
所以请问继承MappingSqlQuery来实现,怎么样做呢?注意:有一种扫描全表的方法,但是效率超级低,受不了!
谢谢!在线等。。。。。。