读书人

jsp与Oracle连接出现错误。请大家帮帮

发布时间: 2012-04-08 14:38:30 作者: rapoo

jsp与Oracle连接出现异常。请大家帮帮忙!!!!
我用jsp和javabean做了一个学生选课系统。javabean中的tolond方法连接Oracle数据库。tolond方法有int行的返回值,jsp根据返回值的不通跳转的不同的页面。
在javabean中测试,连接数据库成功,能取出数据达到预期的效果。
但是在jsp中调用tolond方法就会出现加载驱动异常,sql异常。
以前是连接MySQL数据库的,并且成功了,改成Oracle后,jsp页面就不能正常运行了。
耽误大家一点时间,请大家帮帮忙。谢谢了!!!!!!
代码如下:
javabean:
package wangzhan;
import java.sql.*;
public class lond {
private String first;
private int ID;
private int PASSWORD;
public void setFirst(String first){
this.first=first;
}
public void setID(int ID){
this.ID=ID;
}
public void setPASSWORD(int PASSWORD){
this.PASSWORD=PASSWORD;
}
public int getID(){
return this.ID;
}
public int getPASSWORD(){
return this.PASSWORD;
}

public int tolond(){
String url = "jdbc:oracle:thin:@localhost:1521:orcl1";
String userName = "system";
String password = "o123";
Connection conn = null;
String password1=null;
String pop=null;

try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch(ClassNotFoundException e) {
System.out.println("加载驱动器类时出现异常");
}

try {
conn = DriverManager.getConnection(url, userName, password);

//创建PreparedStatement语句
PreparedStatement pstmtSelect = conn.prepareStatement(
"SELECT password,pop FROM student WHERE stu_id=?");

int id=ID;
pstmtSelect.setString(1, Integer.toString(id));

//执行PreparedStatement语句
ResultSet rs = pstmtSelect.executeQuery();

if(!rs.next())
return 4;
do{
password1=rs.getString(1);
pop=rs.getString(2);
}while(rs.next());

int pop1=Integer.valueOf(pop);
int password2=Integer.valueOf(password1);
if(PASSWORD==password2){
if(pop1==1)
return 1 ;
if(pop1==2)
return 2;
if(pop1==3)
return 3 ;
}
else
return 6;

pstmtSelect.close();

} catch(SQLException e) {
System.out.println("出现SQLException异常");
} finally {
//关闭语句和数据库连接
try {
if (conn != null) conn.close();
} catch(SQLException e) {
System.out.println("关闭数据库连接时出现异常");
}
}
return 5;

}
public static void main(String args[]){
lond b=new lond();
int q=0;
q=b.tolond();
System.out.println(q);
System.out.println(b.getID());
}

}

jsp代码:
<%@ page contentType="text/html; charset=gb2312"%>
<jsp:useBean id="prince" scope="request" class="wangzhan.lond">
<jsp:setProperty name="prince" property="*"/>
</jsp:useBean>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>登录页面</title>
<style type="text/css">
<!--
.STYLE1 {
font-size: 60px
}
body {
background-color: #FFFFFF;
}
-->
</style>
<%
String stu_id="stu_id";
int a=prince.getID();
String str=String.valueOf(a);
session.setAttribute(stu_id,str); %>
<body>
<%!
int leixing=0;
%>
<%
try
{

leixing=prince.tolond();
}
catch(Exception e)
{
out.println(e.getMessage());
}
%>

<table width="800" border="0" align="center" bgcolor="#69B1F9">


<tr>
<td width="267" rowspan="2" background="image/lond2.jpg" > </td>
<td width="517" height="195" background="image/lond3.jpg" bgcolor="#69B1F9"> </td>
</tr>
<tr>
<td height="524" align="center" valign="top"><p> </p>
<p class="STYLE1">欢迎登录选课网</p>
<p class="STYLE1"> </p>
<form id="form1" name="form1" method="post" action="lond.jsp">
<label>请选择登录类型
<select name="select" id="select">
<option>学生</option>
<option>老师</option>
<option>管理员</option>
</select>
</label>
<p>
<label>请输入您的用户ID
<input type="text" name="ID" />
</label>
</p>
<p>
请输入您的密码
<label>
<input type="password" name="PASSWORD" />
</label>
</p>
<p> </p>
<p>
<label>
<input type="submit" name="button" id="button" value="提交" />
</label>
                 
<label>
<input type="reset" name="button2" id="button2" value="重置" />
<%if(leixing==6){ %>
<p>您输入的密码有误 请重新输入</p>
<%} %>
</label>
</p>
</form> <p class="STYLE1"> </p></td>
</tr>
</table>
<%if(leixing==3){
response.sendRedirect("gtotal.html");
}%>
<%if(leixing==2){
response.sendRedirect("totalt.html");
}%>
<%if(leixing==1){
response.sendRedirect("total.html");
}%>

</body>
</html>


[解决办法]
LZ加驱动没
[解决办法]
把异常贴出来
[解决办法]
贴异常代码
[解决办法]
oracle的驱动jar包拷贝一份放到tomcat的lib目录下
如果是工程内调试运行运行那么要引入oracle的驱动jar包
[解决办法]
不看你代码,主要看你异常,谢谢……
[解决办法]
ojdbc14_g.jar 这个包看看,要不从网上看看是这个包是什么!就知道了,在一个 你下次的话吧异常贴出来,不然我们不知道什么问题!
[解决办法]
没有驱动吧
[解决办法]
把异常贴出来然后看你的驱动包加到TOMCAT lib目录下了没有

[解决办法]

探讨
还有就是 jsp中这一句
<%if(leixing==6){ %>
<p>您输入的密码有误  请重新输入 </p>
<%} %>


不是应该先判断leixing是否==6才输出下面一句吗??
为什么每次运行不管leixing等于几,他都输出。
以前不是这样的啊!


[解决办法]
应该是没加驱动到lib下,你把classes12.jar和ojdbc14.jar加到lib下试试
[解决办法]
异常图片看不到
[解决办法]
你的leixing是什么数据类型啊?
jsp现在有异常是逻辑还是控制台的异常呢?
贴出来……
[解决办法]
出什么错了

??

读书人网 >Java Web开发

热点推荐