总人数不对,哪里错了?

monkey_zt 2014-06-24 05:36:53
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>按部门查看某年龄段</title>
</head>
<body>
<table border=1>
<tr>
<td>姓名</td>
<td>部门</td>
<td>年龄</td>
</tr>


<%
request.setCharacterEncoding("utf-8");
String bm = request.getParameter("bm");//注意
String agemin = request.getParameter("agemin");
String agemax = request.getParameter("agemax");

Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3307/hr";
Connection conn = DriverManager.getConnection(url,"root","aaaaaaaa");
Connection conn2 = DriverManager.getConnection(url,"root","aaaaaaaa");
String sql = "SELECT empname,bm,age FROM emp WHERE bm=? AND age BETWEEN ? AND ?";
String sql2 = "SELECT count(*) as totalEmp FROM emp WHERE age>? AND age<?";

PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1,bm);
pstmt.setString(2, agemin);
pstmt.setString(3,agemax);
ResultSet rs = pstmt.executeQuery();

PreparedStatement pstmt2 = conn2.prepareStatement(sql2);
pstmt2.setInt(1, Integer.parseInt(agemin));
pstmt2.setInt(2,Integer.parseInt(agemax));
ResultSet rs2 = pstmt2.executeQuery();
rs2.next();


if(agemin==null)
{
agemin="0";
}
if(agemax==null)
{
agemax="0";
}

while(rs.next()){
%>
<tr>
<td><a href="findbyname.jsp?empname=<%=rs.getString("empname")%>"><%=rs.getString("empname")%></a></td>
<td><%=rs.getString("bm") %></td>
<td><%=rs.getString("age") %></td>



</tr>

<%
}

%>

<tr>
<td colspan="9">总人数:<%=rs2.getInt("totalEmp") %></td>

</tr>

<%



conn.close();
%>
</table>
</body>
</html>
...全文
122 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiafeng_lee 2014-06-26
  • 打赏
  • 举报
回复
引用 9 楼 monkey_zt 的回复:
[quote=引用 6 楼 jiafeng_lee 的回复:] [quote=引用 3 楼 monkey_zt 的回复:] [quote=引用 2 楼 jiafeng_lee 的回复:] 查看你的Sql语句
怎么改呢[/quote]SELECT count(*) as totalEmp FROM emp WHERE age>? AND age<? 这个是你查询总人数的SQL,根据age传值来查询 是否有等于条件,还有就是看下表中的字段有没有标示该数据是否可用[/quote] 加了等于人数还是不对呢?[/quote]你看判断条件里面是否还有其他条件限制没有写进去比如说type、status这些条件什么的
monkey_zt 2014-06-25
  • 打赏
  • 举报
回复
引用 6 楼 jiafeng_lee 的回复:
[quote=引用 3 楼 monkey_zt 的回复:] [quote=引用 2 楼 jiafeng_lee 的回复:] 查看你的Sql语句
怎么改呢[/quote]SELECT count(*) as totalEmp FROM emp WHERE age>? AND age<? 这个是你查询总人数的SQL,根据age传值来查询 是否有等于条件,还有就是看下表中的字段有没有标示该数据是否可用[/quote] 加了等于人数还是不对呢?
monkey_zt 2014-06-25
  • 打赏
  • 举报
回复
String sql2 = "SELECT count(*) as totalEmp FROM emp WHERE age>? AND age<?"; 改成 String sql2 = "SELECT count(*) as totalEmp FROM emp WHERE age>=? AND age<=?";
jiafeng_lee 2014-06-24
  • 打赏
  • 举报
回复
写SQL是根据你的业务逻辑来写的,把业务逻辑弄清楚了写出来的SQL才是你想要的
jiafeng_lee 2014-06-24
  • 打赏
  • 举报
回复
引用 3 楼 monkey_zt 的回复:
[quote=引用 2 楼 jiafeng_lee 的回复:] 查看你的Sql语句
怎么改呢[/quote]SELECT count(*) as totalEmp FROM emp WHERE age>? AND age<? 这个是你查询总人数的SQL,根据age传值来查询 是否有等于条件,还有就是看下表中的字段有没有标示该数据是否可用
风行傲天 2014-06-24
  • 打赏
  • 举报
回复
引用 3 楼 monkey_zt 的回复:
[quote=引用 2 楼 jiafeng_lee 的回复:] 查看你的Sql语句
怎么改呢[/quote] String sql = "SELECT empname,bm,age FROM emp WHERE bm=? AND age BETWEEN ? AND ?"; String sql2 = "SELECT count(*) as totalEmp FROM emp WHERE age>? AND age<?"; 两个sql合并,写一条sql 进行统计,还有你可以看看你的sql到底是哪个出问题了,写一条sql统计的好处就是再于出错时很容易知道sql哪里出错,你的sql和java代码最好不要放在jsp中嵌入写,这样的代码很难维护,让人看了都头疼
jiafeng_lee 2014-06-24
  • 打赏
  • 举报
回复
SELECT count(*) as totalEmp FROM emp WHERE age>? AND age<? 这个是你查询总人数的SQL,根据age传值来查询 是否有等于条件,还有就是看下表中的字段有没有标示该数据是否可用
monkey_zt 2014-06-24
  • 打赏
  • 举报
回复
引用 2 楼 jiafeng_lee 的回复:
查看你的Sql语句
怎么改呢
jiafeng_lee 2014-06-24
  • 打赏
  • 举报
回复
查看你的Sql语句
tony4geek 2014-06-24
  • 打赏
  • 举报
回复
调试看看,什么原因。

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧