当前位置: 技术问答>java相关
sql查询的问题!!!
来源: 互联网 发布时间:2015-06-07
本文导语: 问题是这样的:我在这里输入“学号”,通过“查找”触发下一个界面 指定的学号: 查询处理在这里:我通过上一个页面得到的学号进行查询,然后把查到的值放到s...
问题是这样的:我在这里输入“学号”,通过“查找”触发下一个界面
指定的学号:
查询处理在这里:我通过上一个页面得到的学号进行查询,然后把查到的值放到session里,返回第一页,显示,可是出错了,问题是经常见到的,我反复查找错误,终未解决,大侠请帮忙!!!!
String num1=request.getParameter("num").trim();
String sub1=(String) session.getValue("dwnsubject");
byte[] tmpb=sub1.getBytes("ISO8859_1");
sub1=new String(tmpb);
String strSQL="select * from student where 学号='" + num1 + "' and 科目='"+sub1+"'";
out.print(strSQL);
out.print(sub1);
ResultSet rs = UserBean.executeQuery(strSQL);
String name1;
String code1;
String times1 = (String) session.getValue("dwntimes");
tmpb=times1.getBytes("ISO8859_1");
times1=new String(tmpb);
if(rs.next()) {
name1=rs.getString("姓名");
code1=rs.getString(times1);
rs=null;
UserBean.closeStmt();
rs.close();
session.putValue("num",num1);
response.sendRedirect("markchange.jsp");
}
response.sendRedirect("markchange.jsp");
指定的学号:
查询处理在这里:我通过上一个页面得到的学号进行查询,然后把查到的值放到session里,返回第一页,显示,可是出错了,问题是经常见到的,我反复查找错误,终未解决,大侠请帮忙!!!!
String num1=request.getParameter("num").trim();
String sub1=(String) session.getValue("dwnsubject");
byte[] tmpb=sub1.getBytes("ISO8859_1");
sub1=new String(tmpb);
String strSQL="select * from student where 学号='" + num1 + "' and 科目='"+sub1+"'";
out.print(strSQL);
out.print(sub1);
ResultSet rs = UserBean.executeQuery(strSQL);
String name1;
String code1;
String times1 = (String) session.getValue("dwntimes");
tmpb=times1.getBytes("ISO8859_1");
times1=new String(tmpb);
if(rs.next()) {
name1=rs.getString("姓名");
code1=rs.getString(times1);
rs=null;
UserBean.closeStmt();
rs.close();
session.putValue("num",num1);
response.sendRedirect("markchange.jsp");
}
response.sendRedirect("markchange.jsp");
|
out.print(strSQL);
你这里输出的strSQL有没有错呢?
out.print(sub1);
有没有数据?
你这里输出的strSQL有没有错呢?
out.print(sub1);
有没有数据?
|
String num1=request.getParameter("num").trim();
ResultSet rs = UserBean.executeQuery(strSQL);
String name1;
String code1;
String times1 = (String) session.getValue("dwntimes");
上述几个都有可能为空java.lang.NullPointerException
ResultSet rs = UserBean.executeQuery(strSQL);
String name1;
String code1;
String times1 = (String) session.getValue("dwntimes");
上述几个都有可能为空java.lang.NullPointerException
|
如果对null调用内部方法必然会出现NullPointerException错误。
所以应该常在引用一些可能会出现null值对象前进行判断!
例如:
String num1=request.getParameter("num")
if(num1!=null)
num1=num1.trim();
else
num1="";
String times1 = (String) session.getValue("dwntimes");
if(times1==null)
times1 ="";
.
.
String name1="";
String code1="";
.
.
ResultSet rs = UserBean.executeQuery(strSQL);
if(rs!=null&&rs.next())
{
name1=rs.getString("姓名");
code1=rs.getString(times1);
.
.
.
}
记住:几乎所有对null值对象进行调用内部方法,都会出错!
所以应该常在引用一些可能会出现null值对象前进行判断!
例如:
String num1=request.getParameter("num")
if(num1!=null)
num1=num1.trim();
else
num1="";
String times1 = (String) session.getValue("dwntimes");
if(times1==null)
times1 ="";
.
.
String name1="";
String code1="";
.
.
ResultSet rs = UserBean.executeQuery(strSQL);
if(rs!=null&&rs.next())
{
name1=rs.getString("姓名");
code1=rs.getString(times1);
.
.
.
}
记住:几乎所有对null值对象进行调用内部方法,都会出错!
|
如果还不行?
if(rs.next()) {
name1=rs.getString("姓名");
code1=rs.getString(times1);
rs=null;
UserBean.closeStmt();
rs.close();
session.putValue("num",num1);
response.sendRedirect("markchange.jsp");
}
response.sendRedirect("markchange.jsp"); */
%>
你在每一行的都加:System.out.println("aaaa") ;
if(rs.next()) {
name1=rs.getString("姓名");
System.out.println("aaaa") ;
code1=rs.getString(times1);
System.out.println("aaaa1") ;
rs=null;
System.out.println("aaaa2") ;
UserBean.closeStmt();
System.out.println("aaaa3") ;
rs.close();
System.out.println("aaaa4") ;
session.putValue("num",num1);
System.out.println("aaaa5") ;
response.sendRedirect("markchange.jsp");
System.out.println("aaaa6") ;
}
response.sendRedirect("markchange.jsp"); */
%>
看运行到什么地方了?没有显示地方就是错误的地方。
只能这样了,还不行也就没有办法了。
if(rs.next()) {
name1=rs.getString("姓名");
code1=rs.getString(times1);
rs=null;
UserBean.closeStmt();
rs.close();
session.putValue("num",num1);
response.sendRedirect("markchange.jsp");
}
response.sendRedirect("markchange.jsp"); */
%>
你在每一行的都加:System.out.println("aaaa") ;
if(rs.next()) {
name1=rs.getString("姓名");
System.out.println("aaaa") ;
code1=rs.getString(times1);
System.out.println("aaaa1") ;
rs=null;
System.out.println("aaaa2") ;
UserBean.closeStmt();
System.out.println("aaaa3") ;
rs.close();
System.out.println("aaaa4") ;
session.putValue("num",num1);
System.out.println("aaaa5") ;
response.sendRedirect("markchange.jsp");
System.out.println("aaaa6") ;
}
response.sendRedirect("markchange.jsp"); */
%>
看运行到什么地方了?没有显示地方就是错误的地方。
只能这样了,还不行也就没有办法了。