java DAO类 select方法范例,查询关键词
2013-06-08 17:18
351 查看
public Page selectWarnList(String startDate, String lastDate, String warnName,String warnlightName,int isPage,
String pageNum, String iswarn, int isPrint) {
List<WarnDto> list = new ArrayList<WarnDto>();
try {
StringBuffer sql = new StringBuffer();
StringBuffer where = new StringBuffer(" where 2>1 ");
where.append(" and w_iswarn=").append(iswarn);
where.append(" and w_type in (select set_id from systemsetting where set_value<>'' and set_value is not null and set_id between 1 and 40)");
sql.append("select w.*,lt_name,lpt_name,road_name,area_name from warning w"
+ " left join lightnode on (w_lightnodeid=lt_id)"
+ " left join lamppost on (lt_lamppostid=lpt_id) "
+ " left join roadnode on (road_id = lpt_roadId)"
+ " left join areanode on (area_id=road_areaId)");
if (startDate != null && !"".equals(startDate)) {
where.append(" and w_warnDate>=STR_TO_DATE('");
where.append(startDate).append("','%Y-%m-%d')");
}
if (lastDate != null && !"".equals(lastDate)) {
where.append(" and w_warnDate<=date_add(STR_TO_DATE('");
where.append(lastDate).append("','%Y-%m-%d'),interval 1 day)");
}
if (warnName != null && !"".equals(warnName)) {
where.append(" and w_name like '%");
where.append(warnName).append("%'");//使用append方式获取关键词的值。
}
if (warnlightName != null && !"".equals(warnlightName)) {
where.append(" and lt_name like '%");
where.append(warnlightName).append("%'");
}
sql.append(where);
String sqlCount = sql.toString();
sql.append(" order by w_warnDate desc");
where_var = where.toString();
log.info(sql);
if (isPrint == 0) {
con = DBConnection.getConnection();
if(pageNum==null||"".equals(pageNum)){
pageNum="1";
}
if (isPage == 1) {
page.setTotalCount(BaseUtils.getTotalCount(sqlCount, con));
sql.append(" limit ").append(
(Integer.parseInt(pageNum) - 1)
* page.getRowsPage()).append(",").append(
page.getRowsPage());
}
ps = con.prepareStatement(sql.toString());
rs = ps.executeQuery();
/*
//根据warning表的lightnodeid查询lightnode,lamppost,areanode表,并取出表中t_name,lpt_name,road_name,area_name.
String[] lightnodeid =new String[1];
con1 = DBConnection.getConnection();
ps1 = con1.prepareStatement("select lt_name,lpt_name,road_name,area_name from warning w"
+ " left join lightnode on (w_lightnodeid=lt_id)"
+ " left join lamppost on (lt_lamppostid=lpt_id) "
+ " left join roadnode on (road_id = lpt_roadId)"
+ " left join areanode on (area_id=road_areaId)"
+ " where w.lightnodeid = lightnodeid[0]"
);
rs1 = ps1.executeQuery();
while (rs.next()){lightnodeid[0]=rs.getString("lightnodeid");}
sql.append(" where op_userid like '%").append(lightnodeid[0])
.append("%' ");
DBConnection.free(rs1, ps1, con1);
*/
while (rs.next()) {
WarnDto dto = new WarnDto();
dto.setId(rs.getString("w_id"));
dto.setWarnName(rs.getString("w_name"));
dto.setContext(rs.getString("w_context"));
dto.setIsWarn(rs.getString("w_iswarn"));
dto.setPosition(rs.getString("w_position"));
dto.setCancelReasons(rs.getString("w_cancelreasons"));
dto.setCancelWarnUserId(rs.getString("w_cancelwarnuserid"));
dto.setCancelWarnUserName(rs.getString("w_cancelwarnusername"));
dto.setCancelDate(rs.getString("w_cancelwarndate"));
dto.setSysDate(rs.getString("w_warnDate"));
dto.setLtName(rs.getString("lt_name"));
dto.setLptName(rs.getString("lpt_name"));
dto.setRoadName(rs.getString("road_name"));
dto.setAreaName(rs.getString("area_name"));
list.add(dto);
}
page.setList(list);
page.setCurrPage(Integer.parseInt(pageNum));
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
DBConnection.free(rs, ps, con);
}
return page;
}
String pageNum, String iswarn, int isPrint) {
List<WarnDto> list = new ArrayList<WarnDto>();
try {
StringBuffer sql = new StringBuffer();
StringBuffer where = new StringBuffer(" where 2>1 ");
where.append(" and w_iswarn=").append(iswarn);
where.append(" and w_type in (select set_id from systemsetting where set_value<>'' and set_value is not null and set_id between 1 and 40)");
sql.append("select w.*,lt_name,lpt_name,road_name,area_name from warning w"
+ " left join lightnode on (w_lightnodeid=lt_id)"
+ " left join lamppost on (lt_lamppostid=lpt_id) "
+ " left join roadnode on (road_id = lpt_roadId)"
+ " left join areanode on (area_id=road_areaId)");
if (startDate != null && !"".equals(startDate)) {
where.append(" and w_warnDate>=STR_TO_DATE('");
where.append(startDate).append("','%Y-%m-%d')");
}
if (lastDate != null && !"".equals(lastDate)) {
where.append(" and w_warnDate<=date_add(STR_TO_DATE('");
where.append(lastDate).append("','%Y-%m-%d'),interval 1 day)");
}
if (warnName != null && !"".equals(warnName)) {
where.append(" and w_name like '%");
where.append(warnName).append("%'");//使用append方式获取关键词的值。
}
if (warnlightName != null && !"".equals(warnlightName)) {
where.append(" and lt_name like '%");
where.append(warnlightName).append("%'");
}
sql.append(where);
String sqlCount = sql.toString();
sql.append(" order by w_warnDate desc");
where_var = where.toString();
log.info(sql);
if (isPrint == 0) {
con = DBConnection.getConnection();
if(pageNum==null||"".equals(pageNum)){
pageNum="1";
}
if (isPage == 1) {
page.setTotalCount(BaseUtils.getTotalCount(sqlCount, con));
sql.append(" limit ").append(
(Integer.parseInt(pageNum) - 1)
* page.getRowsPage()).append(",").append(
page.getRowsPage());
}
ps = con.prepareStatement(sql.toString());
rs = ps.executeQuery();
/*
//根据warning表的lightnodeid查询lightnode,lamppost,areanode表,并取出表中t_name,lpt_name,road_name,area_name.
String[] lightnodeid =new String[1];
con1 = DBConnection.getConnection();
ps1 = con1.prepareStatement("select lt_name,lpt_name,road_name,area_name from warning w"
+ " left join lightnode on (w_lightnodeid=lt_id)"
+ " left join lamppost on (lt_lamppostid=lpt_id) "
+ " left join roadnode on (road_id = lpt_roadId)"
+ " left join areanode on (area_id=road_areaId)"
+ " where w.lightnodeid = lightnodeid[0]"
);
rs1 = ps1.executeQuery();
while (rs.next()){lightnodeid[0]=rs.getString("lightnodeid");}
sql.append(" where op_userid like '%").append(lightnodeid[0])
.append("%' ");
DBConnection.free(rs1, ps1, con1);
*/
while (rs.next()) {
WarnDto dto = new WarnDto();
dto.setId(rs.getString("w_id"));
dto.setWarnName(rs.getString("w_name"));
dto.setContext(rs.getString("w_context"));
dto.setIsWarn(rs.getString("w_iswarn"));
dto.setPosition(rs.getString("w_position"));
dto.setCancelReasons(rs.getString("w_cancelreasons"));
dto.setCancelWarnUserId(rs.getString("w_cancelwarnuserid"));
dto.setCancelWarnUserName(rs.getString("w_cancelwarnusername"));
dto.setCancelDate(rs.getString("w_cancelwarndate"));
dto.setSysDate(rs.getString("w_warnDate"));
dto.setLtName(rs.getString("lt_name"));
dto.setLptName(rs.getString("lpt_name"));
dto.setRoadName(rs.getString("road_name"));
dto.setAreaName(rs.getString("area_name"));
list.add(dto);
}
page.setList(list);
page.setCurrPage(Integer.parseInt(pageNum));
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
DBConnection.free(rs, ps, con);
}
return page;
}
相关文章推荐
- 【力荐】Select查询语句中LIKE关键词的优化方法分析
- java-第十三章-类的无参方法(一)-模拟账户查询,实现存取款
- invalid bound statement (not found),大概应该是报mapper.xml中的sql查询和mapper.java中的方法没有绑定成功!
- MYSQL中利用select查询某字段中包含以逗号分隔的字符串的记录方法
- 在 Windows 中实现 Java 本地方法-Java native 关键词
- java:手写二叉树BinaryTree添加和查询方法
- 从java文件和CS文件里查询方法使用次数工具
- Oracle 动态查询,EXECUTE IMMEDIATE select into使用方法
- MYSQL中利用select查询某字段中包含以逗号分隔的字符串的记录方法
- hibernate使用from (select ……)子查询的方法
- Java 根据网址查询DNS/IP地址的方法
- 下载-java一次性查询几百万数据解决方法
- thinkphp3.2【SQL各种查询条件&&select()方法原理追踪】
- 在oracle 数据库查询的select 查询字段中关联其他表的方法
- JAVA之数组查询binarySearch()方法详解
- Java跨日表查询方法与获取当前日期方法
- 2.多个非常有用的Java程序片段-常用java示例-常用示例-范例-公共方法-公用方法-2
- JAVA集合缓存查询引擎CQengine使用范例
- Java对象查询方法:Jxpath
- Java中使用hql,sql查询--多表查询后的新实体构建方法详解