请教专家:JSP连接ACCESS数据库时出错!
发布网友
发布时间:2022-04-11 21:39
我来回答
共5个回答
懂视网
时间:2022-04-12 02:00
为什么JSP不 通过 ODBC 连接 access时,只能 连接 .mdb ,而不能 连接 .accdb 的 数据 库呢,我的URL也相应的作出了修改,为 String url = jdbc:odbc:driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=+dpath ; 但是为什么会报错的呢??报错的是来自S
为什么JSP不通过ODBC连接access时,只能连接.mdb,而不能连接.accdb的数据库呢,我的URL也相应的作出了修改,为
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ="+dpath ;
但是为什么会报错的呢??报错的是来自SQLException这个异常的
[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
难道是版本的不同??还是其他什么的原因??那url该如何修改呢···
热心网友
时间:2022-04-11 23:08
问题出在这儿:
String url = "jdbc:odbc:jcc";
Connection conn = DriverManager.getConnection(url,"jcc","jsp.com.cn");
JDBC连接Access数据库有两种方式:
1.连接数据源,需要在操作系统中配置数据源,连接方式如下(假设jcc就是数据源名):
Connector conn=DriverManager.getConnection("jdbc:odbc:jcc");
2.连接数据库文件,也就是你的jcc.mdb,不过要一定要注意该文件的路径,
如果Access文件存放在e:\Tomcat\webapps\test下,那么jcc.mdb的相对路径就是
..\webapps\test\jcc.mdb
当然你也可以使用绝对路径,连接数据库文件应该像这样:
Connector conn=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=..\\webapps\\test\\jcc.mdb");
这里面最关键的地方就是,应用服务器启动后,当前目录并不是你的JSP文件所在的目录,
计算绝对路径可以这样:
String path = new java.io.File(".").getAbsolutePath();
你可以把这个字符串输出看看,试试就明白了。
热心网友
时间:2022-04-12 00:26
参考以下连接方式:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};" +
"DBQ=Mytext.mdb");
这样是连接数据文件,而不是用DSN.
热心网友
时间:2022-04-12 02:01
下面是我写的一个servlet连接access数据库表的代码,不需要创建数据源,你可以看一下
===================================================import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
public class ConnectAccess extends HttpServlet {
Connection conn = null;
Statement stmt = null;
public void init() throws ServletException {
String strurl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\books.mdb";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection(strurl);
stmt=conn.createStatement();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;");
PrintWriter out = response.getWriter();
try {
ResultSet rs=stmt.executeQuery("select * from books");
out.println("<html><body>");
out.println("<p>Database connection successfully created!</p>");
while (rs.next()) {
out.println("<p>The book's name is: " + rs.getString("book") +"</p>");
}
out.println("</body></html>");
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public void destroy() {
try {
conn.close();
} catch(SQLException e){}
}
}
热心网友
时间:2022-04-12 03:52
如果不想使用数据源连接数据库的话,可以参考下面的方法,在jsp页面中直接连接。
注意:jcc.mdb与Select.jsp要在同一目录下
<%@page contenttype="text/html;charset=gb2312"%>
<%@page import="java.sql.*"%>
<html>
<body>
<%
try{
class.forname("sun.jdbc.odbc.jdbcodbcdriver");
}
catch(classnotfoundexception e){
out.print(e);
}
try{
string strdirpath=application.getrealpath(request.getrequesturi());
strdirpath=strdirpath.substring(0,strdirpath.lastindexof('\'))+"\";
string url = "jdbc:odbc:driver={microsoft access driver (*.mdb)};dbq="+strdirpath+"jcc.mdb";
connection conn = drivermanager.getconnection(url);
statement stmt = conn.createstatement();
resultset rs = stmt.executequery("select * from user");
out.println("user-list"+"<br>");
while(rs.next()){
out.print(rs.getstring(1)+" ");
out.print(rs.getstring(2)+"<br>");
}
rs.close();
stmt.close();
conn.close();
}
catch(exception ex){
out.print(ex);
}
%>
</body>
</html>
参考资料:http://www.djasp.net/?u=read.asp%3Fid%3D743