注册 登录
编程论坛 J2EE论坛

实现数据库查询时,出错了!

fhy_happy365 发布于 2007-04-24 08:54, 1282 次点击
用jsp查询sqlserver2000数据库时 出问题了 请高手指教!!!
原代码如下:
<%@page contentType="text/html;charset=GB2312"%>
<%@ page import="myproject.ISOtoGB2312"%>
<html>
<head>
<title>executeQuery</title>
</head>
<body bgcolor="#ffffff">
<%
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=lab";
String userName="fhy";
String password="428";
String sql=null;
Connection conn=null;
Statement stmt=null;
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(ClassNotFoundException e){
out.println("加载驱动器类时出现异常");
}
try{
conn=DriverManager.getConnection(url,userName,password);
stmt=conn.createStatement();
sql="select *from student";
ResultSet rs=stmt.executeQuery(sql);
%>
<font color="#333333"><b>查询到的信息如下:</b></font>
<table width="67%" border="1" align="center" cellspacing="0" borde-rcolor="#333333" bgcolor="#FFFFFF">
<tr bgcolor="#69B4D8">
<td><dir align="center">学号</dir></td>
<td><div align="center"><b>姓名</b></div></td>
<td><dir align="center"><b>性别</b></dir></td>
<td><div align="center"><b>班级</b></div></td>
</tr>
<%
while(rs.next())
{
%>
<tr bgcolor="#FFB895">
<td><div align="center"><%=rs.getString(1)%></div></td>
<td><dir align="center"><%=rs.getString(2)%></dir></td>
<td><dir align="center"><%=rs.getString(3)%></dir></td>
<td><div align="center"><%=rs.getString(4)%></div></td>
</tr>
<% } %>
</table>
<% rs.close();
stmt.close();
}catch(SQLException e){
System.out.println("出现SQLException异常");
}finally{
try{
if(conn !=null)conn.close();
}catch(SQLException e){
System.out.println("关闭数据库连接时出现异常");
}
}
%>
</body>
</html>
编译时错误如下提示:
init:
deps-module-jar:
deps-ear-jar:
deps-jar:
library-inclusion-in-archive:
library-inclusion-in-manifest:
compile:
compile-jsps:
Compiling 1 source file to E:\myweb\Labser\build\generated\classes
E:\myweb\Labser\build\generated\src\org\apache\jsp\Confirmation_jsp.java:61: 警告:编码 GBK 的不可映射字符
out.println("鍔犺浇椹卞姩鍣ㄧ被鏃跺嚭鐜板紓甯?);
^
E:\myweb\Labser\build\generated\src\org\apache\jsp\Confirmation_jsp.java:70: 警告:编码 GBK 的不可映射字符
out.write(" <font color=\"#333333\"><b>鏌ヨ?鍒扮殑淇℃伅濡備笅锛?/b></font>\n");
^
E:\myweb\Labser\build\generated\src\org\apache\jsp\Confirmation_jsp.java:61: 未结束的字符串字面值
out.println("鍔犺浇椹卞姩鍣ㄧ被鏃跺嚭鐜板紓甯?);
^
1 错误
2 警告
E:\myweb\Labser\nbproject\build-impl.xml:364: The following error occurred while executing this line:
E:\myweb\Labser\nbproject\build-impl.xml:149: Compile failed; see the compiler error output for details.
生成失败(总时间:3 秒)
9 回复
#2
可可℃乐2007-04-24 08:58
<%@ page import="myproject.ISOtoGB2312"%>
不知道你导入这个包有什么用处,也许是转码的吧,
只要你数据库中的是正常的字符,<%@ page contentType="text/html;charset=GB2312"%>应该就可以了
#3
fhy_happy3652007-04-24 16:36

是转码的啊,那都不是错误啊。
编译的时候 出现的1个错误提示如下:
这行out.println("加载驱动器类时出现异常");未结束的字符串字面值
不知道什么意思呢 请高手 帮忙看下 小弟急!!!!


#4
支离破碎2007-04-24 16:39
你先把你的编码问题解决先。你编译都没通过。会造成后面的错误的
#5
fhy_happy3652007-04-25 20:44
编码不知道解决哦,望知道的人,给小弟指点指点呢!
哎,遇到问题 真是郁闷呢!
#6
支离破碎2007-04-26 09:05
网上有N多解决中文问题的。你可以搜一下
#7
fhy_happy3652007-04-26 12:03
斑主,我在网上找到一个关于ISOtoGB2312的类,不知道放代码哪才有用?
希望 斑主 赐教!
#8
支离破碎2007-04-26 12:06
你在头上用import 把这个类导入进来,然后就可以用这个类的方法了。至于放在哪,就随便看你自己了,导入的时候把包的路径写对就可以了
#9
fhy_happy3652007-04-26 21:38

呵呵,谢谢斑主,那问题解决了。
不过 又遇到新的问题了
就是那个 验证页面(login.jsp)又出问题了
请 斑主或其他高手 帮忙调试下 这代码 找找出错的原因 在这先谢你们了!
先给斑竹 看源代码吧:
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<%@ page import=" myproject.ISOtoGb2312 "%>
<html>
<head>
<title>
身份验证
</title>
</head>
<body bgcolor="#ffffff">
<%
String user=ISOtoGb2312.convert(request.getParameter("userName"));
String pwd=ISOtoGb2312.convert(request.getParameter("password"));
String select=request.getParameter("select");
String url ="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=lab";
String userName = "fhy";
String password = "428";
String URL="";
String sql="";
Connection conn = null;
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch(ClassNotFoundException e) {
out.println("加载驱动器类时出现异常");
}
try {
conn = DriverManager.getConnection(url, userName, password);
//创建Statement语句
}
catch(SQLException e) {
out.println("连接数据库的过程中出现SQL异常<br>");
}
Statement stmt = conn.createStatement();
if(select.equals("student")){
sql = "SELECT * FROM student where name='"+user+"'and password='"+pwd+"'";
URL="stu.jsp";
}
else if(select.equals("teacher")){
sql = "SELECT * FROM teacher where tea_name='"+user+"'and tea_password='"+pwd+"'";
URL="teacher.jsp";
}
else if(select.equals("administrator")){
sql = "SELECT * FROM teacher where ad_name='"+user+"'and ad_password='"+pwd+"'";
URL="admin.jsp";
}

//使用executeQuery执行SQL查询语句
ResultSet rs = stmt.executeQuery(sql);
if(rs.next())
response.sendRedirect(URL) ;
else
response.sendRedirect("error.jsp") ;
%>

</body>
</html>
调试的时候 出现的错误提示 如下:
HTTP Status 500 - type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.NullPointerException
org.apache.jsp.login1_jsp._jspService(org.apache.jsp.login1_jsp:80)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.

#10
风月_无边2007-04-27 12:17
有空指针异常,看看表单的数据和连接有没有空!!
1