关于连接access数据库的问题!急!

dengxiaoshun 2004-10-25 09:35:29
我写了以下测试程序:
package Logins;
import java.sql.*;
public class Login {
String ldbdriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sconstr="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=../dbcon/login.mdb";
String pp="";
String nn="";
Connection connect=null;
Statement stmt=null;
ResultSet rs=null;
public Login(){
try {
Class.forName(ldbdriver);}
catch(java.lang.ClassNotFoundException e) {
System.err.println(e.getMessage());

}}
public ResultSet executeQuery(String sql) {
try {
connect=DriverManager.getConnection(sconstr,nn,pp); stmt=connect.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(sql);}
catch(SQLException ex) {
System.err.println(ex.getMessage());
ex.printStackTrace();
}
return rs;} }

jsp:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="condbbean" scope="page" class="Logins.Login"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>login</title>
</head>

<body>
<table><tr><td width="50%">name</td><td>password</td></tr>
<%
ResultSet rs_result=condbbean.executeQuery("select * from login");
String lname="";
String lpas="";
while(rs_result.next())
{lname=rs_result.getString("name");
lpas=rs_result.getString("psw");%>

<tr><td><%=lname%></td><td><%=lpas%></td></tr></table>
<%
}
rs_result.close();
%>
</body>
</html>
tomcat提示为:
type Exception report

message

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:367)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


root cause

java.lang.NullPointerException
org.apache.jsp.myweb.beatgates.TMPojiq1656rh_jsp._jspService(TMPojiq1656rh_jsp.java:75)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

是空指针吗,数据表名,字段名都没有错啊!那个jasper.JasperException
是什么意思?
...全文
178 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinsfree 2004-10-29
  • 打赏
  • 举报
回复
DBQ="*.mdb"
可能是你的相对路径不认
xinfeng802 2004-10-29
  • 打赏
  • 举报
回复
数据库连接有问题吧,安 gjd111686(数字金刚)说的试试
leijun8088 2004-10-28
  • 打赏
  • 举报
回复
////////////////////////////////////////////////////////


//////这是连接数据库的文件./////////////////////////////

ACCESS数据库+java
///////////////////////////////////////////////////////

package football;
import java.sql.*;
import java.io.*;


public class DbConnection {

Connection conn = null;
Statement stmt = null;
ResultSet rset = null;

private String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
private String sConnStr = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=league.mdb";

public DbConnection() {
}
public void connectionOpen()
{
try {
Class.forName(sDBDriver);
}
catch (java.lang.ClassNotFoundException e) {
System.err.println(e.getMessage());
}
}

//executeQuery and executeUpdate

public ResultSet executeQuery(String query) throws SQLException{
conn = DriverManager.getConnection(sConnStr);
stmt = conn.createStatement();
rset = stmt.executeQuery(query);
return rset;
}

public void executeUpdate(String query) throws SQLException{
stmt = conn.createStatement();
stmt.executeUpdate(query);
if(stmt != null) stmt.close();
}



public void close() throws SQLException{
if(conn != null) conn.close();
if(rset != null) rset.close();
if(stmt != null) stmt.close();
}

protected void finalize() throws Throwable{
close();
}


}

gjd111686 2004-10-26
  • 打赏
  • 举报
回复
String odbcQuery;
Connection odbcConn;
Statement odbcStmt;
ResultSet odbcRs;

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
odbcConn=DriverManager.getConnection("jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=F:\\Db_ColligateStatistic\\ColligateStatistic.mdb;","admin","");
odbcStmt=odbcConn.createStatement();
odbcStmtExtend=odbcConn.createStatement();
dengxiaoshun 2004-10-26
  • 打赏
  • 举报
回复
不知道是否与使用access2003有关系,它说要升级到Microsoft Jet 4.0 Service Pack 8
dengxiaoshun 2004-10-26
  • 打赏
  • 举报
回复
我用的是fat32啊,而且改了不用连接字符窜也是出现那个提示
dengxiaoshun 2004-10-26
  • 打赏
  • 举报
回复
按 xinfeng802(流浪) 说的做没有出错,但不能读到数据,只执行到显示字段名,不能读到数据,一编译到if后面的就什么都没有了
xinfeng802 2004-10-26
  • 打赏
  • 举报
回复
<%
ResultSet rs_result=condbbean.executeQuery("select * from login");
String lname="";
String lpas="";
if (rs_result!=null)
{
while(rs_result.next())
{lname=rs_result.getString("name");
lpas=rs_result.getString("psw");%>

<tr><td><%=lname%></td><td><%=lpas%></td></tr></table>
<%
}
rs_result.close();
}
%>
</body>
</html>
郑燕辉 2004-10-25
  • 打赏
  • 举报
回复
这样本来是可以连接成功的
如果你的文件系统用的NTFS
但是你必须要将文件属性的安全中添加一个system和everone用户
并将所有的读写权限给它
风斧 2004-10-25
  • 打赏
  • 举报
回复
你不用连接字符串,先件一个odbc数据源,然后。。。
用联结字说不定会出现路径问题等。

81,090

社区成员

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

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