本人刚刚自学了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,谢谢。
分享到:
相关推荐
Ibatis多表查询
ibatis动态多条件组合查询 实例 说明
Ibatis多表查询,一个小小的多表查询实例教你如何用ibatis进行多表查询
struts+spring+ibatis+extjs完美整合! 联系方式:QQ360310087 如果有需要与本人沟通的.
ibatis_动态查询条件详解及需要注意的地方
ibatis多表查询开发过程(java)
iBatis做的按条件查询,没关联其他表,内带Mysql,适用于小型项目,hibernate是全自动化,如有朋友想学习下半自动化持久层框架,那就来下载这个看看吧。。
ibatis的多参数查询.doc
操作数据库 iBATIS查询,java 和spring的配置方法
一份非常详细的讲解文档,从建表到Ibatis配置文件,再到dao代码全部都有
ibatis做连接查询 .doc
ibatis教程_查询指定id的单个对象 ibatis教程_查询指定id的单个对象
这个文件中包含了许多ibatis的查询语句,能够让你很清楚的知道,如何实现动态的查询。
Ibatis复杂查询语句.doc
ibatis经典教材,学习必备!
ibatis学习 ibatis总结 ibatis ibatis ibatis
Ibatis查询语句里,可以使用多表查询,返回多个表的值.doc
Ibatis查询Id列表.doc
ibatis中SQL语句映射指导!