读书人

百分求助,SQL语句异常,多谢先

发布时间: 2011-12-11 23:19:43 作者: rapoo

百分求助,SQL语句错误,谢谢先

错误类型

java.lang.NullPointerException 空指针

不抛出异常好像到这就错 rs = db.executeQuery(PPsql);while(rs.next())

jsp源码:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<jsp:useBean id="db" scope="page" class="cn.com.util.DataBase"></jsp:useBean>
<title>添加新商品</title>
</head>
<body bgcolor="#FFFFFF">
<table width="600" border="0" cellspacing="1" cellpadding="1" align="center">
<tr align="center" bgcolor="#CCCCCC">
<td><b></b></td>
<td><b>作者</b></td>
<td><b>型</b></td>
</tr>
<%
String Id="";
String managerName="";
String emailAddress="";
int i;
int ipage=2; //分位
int allpage; //
int pages; //接受的
int cpage=1; //前
int spage; //始
int allCol=0;
Vector v=null;
String PPsql,pagesql;
ResultSet rs,pagers;
//pagesql = "SELECT COUNT(*) FROM Authors";
pagesql = "SELECT COUNT(*) FROM managers";
//取文章
//statement = conn.createStatement();
//pagers = statement.executeQuery(pagesql);
pagers=db.executeQuery(pagesql);
while(pagers.next())
{
allCol = pagers.getInt(1);
//System.out.println(allCol);

}
//得面
allpage = (int)Math.ceil((allCol + ipage-1) / ipage);
//判pages是否空
if (request.getParameter("pages")==null)
{
pages=1;
}
else
{
pages = new Integer(request.getParameter("pages")).intValue();
System.out.println(pages);
}
//判前
if(pages > allpage || pages == 0)
{
cpage = 1;
}
else
{
cpage = pages;
}
//判起始
//sql = "select Top "+ipage+" au_id,au_lname,au_fname,address,phone from authors where au_id not in (select top "+(cpage-1)*ipage+" au_id from authors order by au_id desc)order by au_id desc";
PPsql = "SELECT TOP "+ipage+" Id,ManagerName,EmailAddress FROM managers WHERE Id NOT IN (SELECT TOP ";
PPsql+=(cpage-1)*ipage+" Id FROM managers ORDER BY Id DESC)ORDER BY Id DESC";
try
{
rs = db.executeQuery(PPsql);
while(rs.next())
{
Id=rs.getString("Id");
managerName=rs.getString("ManagerName");
emailAddress=rs.getString("EmailAddress");
%>
<tr>
<td><%= Id %></td>
<td><%= managerName %></td>
<td><%= emailAddress %></td>
</tr>
<%
}
}
catch(Exception ex)
{
out.print(ex.toString());
}
%>
<tr bgcolor="#CCCCCC">
<td colspan="3" align="right" valign="middle">共 <%= allCol %> 共 <%= allpage %> <% if (cpage>1) { %><a href="manager.jsp?pages=<%= cpage-1 %>"></a><% } if (cpage<allpage) { %><a href="manager.jsp?pages=<%= cpage+1 %>"></a><% } %> / <% for (i=1;i<=allpage;i++) { if (i != pages) {%><a href="manager.jsp?pages=<%= i %>"><%= i %></a> <% }} %></td>


</tr>
</table>
</body>
</html>


java源码

/*返回ResultSet*/
public ResultSet executeQuery(String m_SQL)
{
ResultSet rs=null;
try
{
Connection conn =getConnection();
PreparedStatement ps =conn.prepareStatement(m_SQL);
rs = ps.executeQuery();
}
catch (Exception ex)
{
System.err.println("sql_data.executeQuery:" + ex.getMessage());
}
return rs;
}



[解决办法]
pagers=db.executeQuery(pagesql); //db是不是没取到?

[解决办法]

应该是取到了,因为在前面用了
[解决办法]

是不是我的SQL错了呀,帮我看看
[解决办法]
如果是SQL错了,就把语句放到查询分析器里试试,执行看看就知道了

[解决办法]
应该是你SQL语句错了,不可能是那句话错了,
这种情况我也遇到过
[解决办法]

我用的是myslq
[解决办法]
+=(cpage-1)*ipage+" Id FROM managers ORDER BY Id DESC)ORDER BY Id DESC"//DESC)ORDER 之间加个空格
应该是sql异常,然后你就直接返回了个null的ResultSet,这样rs.next就出现java.lang.NullPointerException了
把System.err.println("sql_data.executeQuery:" + ex.getMessage()); 这里打印出来的信息贴出来,最好把sql文也打印出来System.out.println(m_SQL);然后在MySql端测试一下sql文。

[解决办法]
PPsql = "SELECT TOP "+ipage+" Id,ManagerName,EmailAddress FROM managers WHERE Id NOT IN (SELECT TOP ";
PPsql+=(cpage-1)*ipage+" Id FROM managers ORDER BY Id DESC)ORDER BY Id DESC";
你这名的sql有问题,例如ipage=20,cpage=2
看看你的结果:
SELECT TOP 20 Id,ManagerName,EmailAddress FROM managers WHERE Id NOT IN (SELECT TOP 20 Id FROM managers ORDER BY Id DESC)ORDER BY Id DESC
结果记录肯定是不对的。
mysql分页比较简单呀
select * from table limit 0,20
如果要第二页的内容:
select * from table limit 20,20
比sqlserver简单多了

[解决办法]
自己测试下了,把sql执行语句提取出来直接在数据库查询工具下看看能否正常运行不就行了。

读书人网 >Java Web开发

热点推荐