ibatis多条件查询问题,急!急!急!!

本人刚刚自学了Ibatis,我现在需要查询一个两个时间之间的数据,使用的是Map传参数,但一直查不出数据,也不报错,请高手指点下,不使用map传参数也行,只要有解决的方法。谢谢。
数据库中中表t_work有一个时间的字段,对应的Bean中也有一个时间类型的属性,和表的时间类型字段相对应。
我把我的大概代码贴出来
我用log4j配置后,把sql语句打印出来,结果没有打印出where后面接的条件,就一个select * from t_work语句,不知道怎么后面的where条件没接上去,我再把判断参数为空的条件去掉,打印出来的语句是:select * from t_work where work_time between ? and ? 这样,Map中的参数也没传进去。


public class WorkBean {

private int work_id;
private String workname;
private String worktype;
private Date worktime;
private Float workmoney;
private int workset;
private int workproof;
private String worktext;
private String workexpand1;
private String workexpand2;
private int workexpand3;
private int workexpand4;
//get set方法
}

dao类

public List<WorkBean> findWork(Map hashMap){
List<WorkBean> workList = new ArrayList();
try{
DaoUtil.getConnection().queryForList("findWork", hashMap);
}catch(Exception ex){
ex.printStackTrace();
}
return workList;
}
public static void main(String[] args) {
WorkDao dao = new WorkDao();
Map<String,Object> wrokMap = new HashMap();
wrokMap.put("startTime", "2009-08-30 16:38:32.0");
wrokMap.put("endTime", "2009-08-30 16:39:08.0");
wrokMap.put("userName", "admin");
List<WorkBean> workList = new ArrayList();
workList = dao.findWork(wrokMap);
System.out.println(workList.size()+"--------");
}


对应的映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
<typeAlias alias="work" type="com.house.bean.WorkBean"/>

<resultMap id="workMap" class="work">

<result property="work_id" column="work_id" />
<result property="workname" column="work_name" />
<result property="worktype" column="work_type" />
<result property="worktime" column="work_time" />
<result property="workmoney" column="work_money" />
<result property="workset" column="work_set" />
<result property="workproof" column="work_proof" />
<result property="worktext" column="work_text" />
<result property="workexpand1" column="work_expand1" />
<result property="workexpand2" column="work_expand2" />
<result property="workexpand3" column="work_expand3" />
<result property="workexpand4" column="work_expand4" />

</resultMap>

<select id="findWork" resultClass="work" parameterClass="java.util.Map">
select * from t_work
<dynamic prepend="where">
<isParameterPresent>
<isNotEmpty prepend="and" property="work_time">
work_time between #startTime# and #endTime#
</isNotEmpty>

<isNotEmpty prepend="AND" property="work_name">
work_name=#userName#
</isNotEmpty>
</isParameterPresent>
</dynamic>

</select>
</sqlMap>


t_work脚本

create table t_work
(
work_id int primary key identity not null ,--主键,自动增长
work_name varchar(20) not null,
work_type varchar(20) not null,
work_time datetime not null ,
work_money float ,
work_set int ,
work_proof int not null ,
work_text varchar(2000) ,
work_expand1 varchar(200) , -- 扩展字段1
work_expand2 varchar(2000),
work_expand3 int ,
work_expand4 int
)


哪位可以看出我问出在哪里吗?程序不报错,但返回的list一直是0,或者哪位有相关的demo发一个到我邮箱吧:jdbc4@163.com,谢谢。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值