jsp连接ORACLE数据库问题????(50分)

  • 主题发起人 主题发起人 huangyechun
  • 开始时间 开始时间
H

huangyechun

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ACCESS数据库调通了的JSP程序
现在想把它换成ORACLE数据库,总是出现以下的错误:
500 Servlet Exception
java.lang.NullPointerException
at _class._wfm._login__jsp.CheckLogin(/class/wfm/login.jsp:104)
at _class._wfm._login__jsp._jspService(/class/wfm/login.jsp:74)
at com.caucho.jsp.JavaPage.service(JavaPage.java:87)
at com.caucho.jsp.JavaPage.subservice(JavaPage.java:81)
at com.caucho.jsp.Page.service(Page.java:474)
at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:166)
at com.caucho.server.http.Invocation.service(Invocation.java:277)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:129)
at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:334)
at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:266)
at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
at java.lang.Thread.run(Thread.java:484)
我程序中的数据库连接是这样的:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:wforadb";
con=DriverManager.getConnection(url,"wfms","wfms");
向高手们请教!!!!!
 
class/wfm/login.jsp:104
去看这一行,看发生什么事了。
 
我看了这一行,我全部的程序都没有到104行,那两个
(/class/wfm/login.jsp:104)
(/class/wfm/login.jsp:74)
指的位置好像是乱指的。
是不是我的ORACLE数据库有什么问题呀?按说不会的,我安装时很顺利。并且还用过一段时间。
 
class/wfm/login.jsp:104
打对折,你查看class/wfm/login.jsp:52
 
1、本地ORACLE服务名问题
2、我通过的代码:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<!--告诉编译器使用SQL包-->
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<%
Connection con;
Statement stmt;
ResultSet rs;
String Color;
java.lang.String sql,pagesql,strPage;
java.sql.ResultSet page_rs;
int cu=1;

//定义分页用的变量
int intPageSize;
//一页显示的记录数
int intRowCount;
//记录总数
int intPageCount;
//总页数
int intPage;
//待显示页码
int i,j,k;
//设置一页显示的记录数
intPageSize = 20;
//取得待显示页码

/*------------------------------------------------------------------------------------*/
strPage = request.getParameter("page");
if(strPage==null){
//表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;

} else
{
//将字符串转换成整型
intPage = java.lang.Integer.parseInt(strPage);

if(intPage<1) intPage = 1;
}
/*-----------------------------------------------------------------------------------*/

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:jjgl";
con=DriverManager.getConnection(url, "jjgl", "jjgl");
stmt = con.createStatement();

/*-----------------------------------------------------------------------------------*/
pagesql = "Select count(*) a From jjgc_ydwcqk";
page_rs = stmt.executeQuery(pagesql);

page_rs.next();
intRowCount = page_rs.getInt("a");
//记算总页数
intPageCount = (intRowCount+intPageSize-1) / intPageSize;
//调整待显示的页码
if(intPage>intPageCount)
{ intPage = intPageCount;
}
page_rs.close();

/*-----------------------------------------------------------------------------------*/
rs = stmt.executeQuery("Select * From jjgc_ydwcqk Order by xh Desc ");

//将记录指针定位到待显示页的第一条记录上
i = (intPage-1) * intPageSize;

%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312">
<title>早会信息</title>
<STYLE type=text/css>
BODY { FONT-SIZE: 12px}
TD { FONT-SIZE: 12px}
.wh { COLOR: #fff00f;
FONT-SIZE: 12px;
TEXT-DECORATION: none}
.white { COLOR: #000066;
FONT-SIZE: 12px;
TEXT-DECORATION: none}
A.map:link { COLOR: #d00000;
FONT-SIZE: 12px;
TEXT-DECORATION: underline}
A.map:visited { COLOR: #d00000;
FONT-SIZE: 12px;
TEXT-DECORATION: underline}
A.map:hover { COLOR: #d00000;
FONT-SIZE: 12px;
TEXT-DECORATION: underline}
a:link { color: #99CC00;
font-size: 12px;
text-decoration: none }
a:visited { color: #99CC00;
font-size: 12px;
text-decoration: none }
A:hover { COLOR: #000066;
FONT-SIZE: 12px;
TEXT-DECORATION: underline}
A.wt:link { COLOR: #FFFFFF;
FONT-SIZE: 12px;
TEXT-DECORATION: none}
A.wt:visited { COLOR: #FFFFFF;
FONT-SIZE: 12px;
TEXT-DECORATION: none}
A.wt:hover { COLOR: #FFFFFF;
FONT-SIZE: 12px;
TEXT-DECORATION: underline}
A.title:link { COLOR: #ffffff;
FONT-SIZE: 14px;
TEXT-DECORATION: none}
A.title:visited { COLOR: #ffffff;
FONT-SIZE: 14px;
TEXT-DECORATION: none}
A.title:hover { COLOR: #ffffff;
FONT-SIZE: 14px;
TEXT-DECORATION: none}
.f1 {BORDER-BOTTOM: 1px inset;
BORDER-LEFT: 1px inset;
BORDER-RIGHT: 1px inset;
BORDER-TOP: 1px inset;
height: 14pt;
font-size: 12px}
.f2 {BACKGROUND-COLOR: #cccccc;
BORDER-BOTTOM: 1px ridge;
BORDER-LEFT: #ffffff 1px ridge;
BORDER-RIGHT: 1px ridge;
BORDER-TOP: #ffffff 1px ridge;
height: 14pt;
font-size: 12px}
.f3 {BACKGROUND-COLOR: #cccccc;
BORDER-BOTTOM: 1px ridge;
BORDER-LEFT: #ffffff 1px ridge;
BORDER-RIGHT: 1px ridge;
BORDER-TOP: #ffffff 1px ridge;
height: 14pt;
font-size: 12px;
color: #CC0000}
.L { COLOR: #ffffff;
FONT-SIZE: 14px}
.L14 { LINE-HEIGHT: 140%}
.L15 { LINE-HEIGHT: 150%}
.L16 { LINE-HEIGHT: 160%}
.L17 { LINE-HEIGHT: 170%}
.dot { COLOR: #e00000;
FONT-SIZE: 7px;
LINE-HEIGHT: 14px}
.date { FONT-SIZE: 9px}
.title { COLOR: #000066;
FONT-SIZE:14px;
TEXT-DECORATION: none}
.cf { COLOR: #cc0000;
FONT-SIZE: 12px}
.L18 { LINE-HEIGHT: 180%}
.L19 { LINE-HEIGHT: 190%}
</STYLE>
</head>
<body>
<h3 align="center"><br>
基建工程管理
</h3>
<div align="center">
<center>

<form method="POST">
<table border="0" width="780" height="32" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
<tr>
<td width="66" height="32" bgcolor="#D9E6FF" align="center">查找:</td>
</center>
<td width="318" height="32" bgcolor="#D9E6FF" align="center" valign="middle">
<p align="left"><select size="1" name="D1" class="f1">
<option>sdsadasd</option>
</select> <input type="text" name="T1" size="16" class="f1"> <input type="submit" value="确定" name="B1" class="f2"></p>

</td>
<td width="278" height="32" bgcolor="#D9E6FF" align="center">
</td>
<td width="96" height="32" bgcolor="#D9E6FF" align="center">
<p align="right">增加新数据</p>
</td>
</tr>
<center>


</table>

</form>

</center>
</div>
<div align="center">
<center>
<table border="0" width="784" height="69" cellspacing="1" cellpadding="0" bgcolor="#FFFFFF">
<tr>
<td width="66" height="21" bgcolor="#F3F3F3" align="center">日期</td>
<td width="43" height="21" bgcolor="#F3F3F3" align="center">序号</td>
<td width="86" height="21" bgcolor="#F3F3F3" align="center">工程编号</td>
<td width="278" height="21" bgcolor="#F3F3F3" align="center">工程名称</td>
<td width="148" height="21" bgcolor="#F3F3F3" align="center">开工时间</td>
<td width="203" height="21" bgcolor="#F3F3F3" align="center">所需资金</td>
<td width="71" height="21" bgcolor="#F3F3F3" align="center">管理</td>
</tr>
<%
for(j=0;j<i;j++) rs.next();

//显示数据
i = 0;
while(i<intPageSize &amp;&amp;
rs.next())
{
String col1 = rs.getString("RQ");

String col2 = rs.getString(2);
String col3 = rs.getString(3);
String col4 = rs.getString(4);
String col5 = rs.getString(5);
String col6 = rs.getString(7);




if(col1==null||col1.length()==0)
{ col1="";
}
if(col2==null||col2.length()==0)
{ col2="";
}

if(col3==null||col3.length()==0)
{ col3="";
}
if(col4==null||col4.length()==0)
{ col4="";
}

if(col5==null||col5.length()==0)
{ col5="";
}

if(col6==null||col6.length()==0)
{ col6="";
}

cu++;
if (cu % 2 == 0) { Color="#FBF7FF";
}
else
{ Color="#fFFFfF";
}
%>

<tr>
<td width="66" height="21" bgcolor="<%=Color%>"><%=col1%> </td>
<td width="43" height="21" bgcolor="<%=Color%>"><%=col2%> </td>
<td width="86" height="21" bgcolor="<%=Color%>"><%=col3%> </td>
<td width="278" height="21" bgcolor="<%=Color%>"><%=col4%> </td>
<td width="148" height="21" bgcolor="<%=Color%>"><%=col5%> </td>
<td width="203" height="21" bgcolor="<%=Color%>"><%=col6%> </td>
<td width="71" height="21" bgcolor="<%=Color%>" align="center">详细</td>
</tr>
<%
i++;
}
%>
<tr>
<td colspan=7 align=center height="21" style="border-top-style: solid;
border-top-width: 1;
border-bottom-style: solid;
border-bottom-width: 1" bgcolor="#F3F3F3" width="846">
共有<%=intRowCount%>条记录&amp;nbsp;&amp;nbsp;&amp;nbsp;
第<%=intPage%>页/ 共<%=intPageCount%>页
<%if(intPage<intPageCount){%>
 &amp;nbsp;&amp;nbsp;
<a href="test.jsp?page=<%=intPage+1%>">下一页</a><% } %>

<%if(intPage>1){%>
 &amp;nbsp;
<a href="test.jsp?page=<%=intPage-1%>">上一页</a>

<% } %>

</td>
</tr>
<%
out.println("</table>");

%>

</center>
</table>
</body>
</html>
3、ODBC配置了没有
4、试一下JDBC
 
非常感谢你们!!!
可是关于ODBC怎么配置,它有两种驱动:
一是ORACLE ODBC Driver
另外是Microsoft ODBC for ORACLE
具体用哪一种?
 
好象区别不是很大吧,我也用过jdbc-odbc桥连接的方式,用两个驱动都一样!
 
一是ORACLE ODBC Driver
这个好。不会出错SQL的兼容问题。
 
为何不用Oracle JDBC Driver????
 
既然用java,就不要用jdbc-odbc桥,直接用jdbc不是很好吗?
 
检查数据库连接的地方,应该是取回的con为null才报错的。
 
由于对为null的对象进行了某些操作,所以导致java.lang.NullPointerException错误。
比如:
String strTemp=null;
System.out.pringtln(strTemp.substring(2));
这样就会出现这个错误。
代为结帖,还请楼主谅解,返还楼主8分,祝中秋快乐!!!

 
后退
顶部