本人刚刚自学了Ibatis,我现在需要查询一个两个时间之间的数据,使用的是Map传参数,但一直查不出数据,也不报错,请高手指点下,不使用map传参数也行,只要有解决的方法。谢谢。
数据库中中表t_work有一个时间的字段,对应的Bean中也有一个时间类型的属性,和表的时间类型字段相对应。
我把我的大概代码贴出来
哪位可以看出我问出在哪里吗?程序不报错,但返回的list一直是0,或者哪位有相关的demo发一个到我邮箱吧:[email protected],谢谢。
Java代码
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方法
} 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类
Java代码
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()+"--------");
} 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代码
<?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> <?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脚本
Sql代码
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
) 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
)
数据库中中表t_work有一个时间的字段,对应的Bean中也有一个时间类型的属性,和表的时间类型字段相对应。
我把我的大概代码贴出来
哪位可以看出我问出在哪里吗?程序不报错,但返回的list一直是0,或者哪位有相关的demo发一个到我邮箱吧:[email protected],谢谢。
Java代码
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方法
} 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类
Java代码
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()+"--------");
} 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代码
<?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> <?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脚本
Sql代码
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
) 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
)
解决方案 »
- struts2 spring ibatis 整合 登录验证怎么弄啊
- Struts2:总是显示404错误
- 雪地里跪求---JPA生产表问题
- webservices 是什么?我一点概念都没有。
- 使用iterator实现遍历和删除
- java中如何获取ODBC数据源下的所有数据源名称,急,在线等待
- 想开发一个代码自动生成的插件,求思路。
- eclipse+myeclipse+jboss 开发ejb 如何配置啊 急
- 开启tomcat后,键入http://localhost:8080 后出现一个验证对话框,怎么办?
- 启动tomcat4.1报错了-哪儿错了?
- java 如何生成声音文件?
- myeclipse 为什么那么的卡?
改成
work_time > #startTime# and work_time < #endTime# 另外说一下,你的变量名之类的命名习惯需要改进一下。
后面加 as datetime试试
字段是时间类型,我在Map里放过时间类型的参数,也是一样的不报错,就是查不到数据。。
work_time between #startTime# and #endTime#
</isNotEmpty>
这里写错了...property="work_time"
property定义的是要传进来的参数.
应该这样写:
<isNotEmpty prepend=" AND " property="btime"> YEAR_NO >= #btime# </isNotEmpty>
<isNotEmpty prepend=" AND " property="etime"> YEAR_NO <= #etime#</isNotEmpty>
应该这样写:
<isNotEmpty prepend=" AND " property="btime"> YEAR_NO >= #btime# </isNotEmpty>
<isNotEmpty prepend=" AND " property="etime"> YEAR_NO <= #etime#</isNotEmpty>今天我也遇到同样的错,照此方法,解决了,谢谢!