JSP查询ACCESS数据库问题,紧急!!!

yoyo23mir 2005-05-11 08:50:14
数据库中三个表formA,formB,formC。formA表中有字段aa和bb,formB中有字段bb和cc,formC表中有字段cc和dd。现需要通过输入aa的内容来查询dd的内容。小弟是JSP初学者,不是很会写,那位好心的哥哥姐姐能帮我写一下啊?谢谢了。
这是我自己写了只是在formA表中通过输入aa数据查询bb数据的JSP页面,但是执行时总是出错,我的JSP环境没问题,测试过了。哪位哥哥姐姐能帮我改一下啊?
<%@ page contentType="text/html;charset=GB2312" language="java" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY bgcolor=orange ><Font size=1>
<FORM action="" Method=post>
请输入查询内容:
<Input type=text name=number>
<Input type=submit name=g value=查询>
</FORM>
<%! Connection con=null;//声明一个共享的连接对象。
%>
<% //获取查询内容。
String aa=request.getParameter("number");
if(aa==null)
{aa="?";
}
byte b[]=aa.getBytes("ISO-8859-1");
aa=new String(b);
Statement sql=null;
ResultSet rs=null;
if(con==null)
{ try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{out.print(e);
}
try {con=DriverManager.getConnection("jdbc:odbc:数据源名","","");
String condition="SELECT * FROM formA WHERE AA = "+"'"+ aa +"'";
rs =sql.executeQuery(condition);
}
catch(SQLException e)
{out.print(e);
}
}
else
{ synchronized(con)
{ try {sql=con.createStatement();
String condition="SELECT * FROM formB WHERE AA = "+"'"+ aa +"'";
rs =sql.executeQuery(condition);
}
catch(SQLException e)
{out.print(e);
}
}
}
try { out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"AA");
out.print("<TH width=100>"+"BB");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
String number=rs.getString(1);
out.print("<TD >"+number+"</TD>");
String bb=rs.getString("BB");
out.print("<TD >"+bb+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
}
catch(SQLException e1)
{ out.print("<BR>查询失败,请重试");
}
%>
</FONT>
</BODY>
</HTML>

这下面是出错提示信息,我看的不是很懂,谁能告诉我是什么意思啊?
java.lang.NullPointerException
at org.apache.jsp.index$jsp._jspService(index$jsp.java:87)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:534)

...全文
186 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
MARS.nEIL 2005-05-12
  • 打赏
  • 举报
回复
try {con=DriverManager.getConnection("jdbc:odbc:数据源名","","");
数据源名????你设置了数据源没有??系统数据源.
sunshine5246 2005-05-12
  • 打赏
  • 举报
回复
主要的就是NullPointerException异常,我看了,是sql没有初始化,修改一下:
try {con=DriverManager.getConnection("jdbc:odbc:数据源名","","");
sql = con.createStatement();/////////
String condition="SELECT * FROM formA WHERE AA = "+"'"+ aa +"'";
rs =sql.executeQuery(condition);
yoyo23mir 2005-05-12
  • 打赏
  • 举报
回复
谢谢,那还有其他提示是什么意思呢?
yoyo23mir 2005-05-12
  • 打赏
  • 举报
回复
阳光,我按你说的修改了,可还是出错,错误信息为:
java.lang.NullPointerException
at org.apache.jsp.index$jsp._jspService(index$jsp.java:111)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:534)

怎么回事啊?

yoyo23mir 2005-05-12
  • 打赏
  • 举报
回复
谢谢,我改来试试看。数据源是肯定设置了的。
yangbc 2005-05-12
  • 打赏
  • 举报
回复
有NullPointerException异常,说明你的数据库链接有问题,好好看看你的数据库链接部分
yoyo23mir 2005-05-12
  • 打赏
  • 举报
回复
谢谢,还有就是这里变量声明好象有点问题,能帮我修改一下吗?
magicianlude 2005-05-11
  • 打赏
  • 举报
回复
这个是JSP问题吗?要实现从aa查到dd,这个是数据库的查询语句啊
select dd
from formA,formB,formC
where aa="你要的东西" and formA.bb=formB.bb and formB.cc=formC.cc
一个SQL语句不就可以了吗?
xiaowenand 2005-05-11
  • 打赏
  • 举报
回复
String pa = request.getParameter("text");
select * from formA where aa = pa
if(rs.next())
String A = rs.getString("aa");
select * from formB where bb = A
if(rs.next())
String B = rs.getString("bb");
select * from fromC where cc = bb
String C = rs.getString("cc")

基本思路是这样

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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