高分:不用odbc连接access数据库的问题
搜索论坛找到了一个不用odbc连接access数据库的代码:
Connection con;
Statement stmt;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=f:\\Access.mdb";
con = DriverManager.getConnection(url, "", "");
stmt = con.createStatement();
----------------------
DBQ=f:\\Access.mdb";
是绝对路径
怎么不用绝对路径,要让程序不改动可以在任何路径下运行,能不能实现?
(如asp中的Server.MapPath()一样。。。)
用appliation.getRealPath()获取绝对路径也是不行的,因为人家网站有限制。。。
怎么办?还有没有别的办法?
因为我的程序是放在免费jsp空间上的不能建odbc啊。。。。。。。。
SOS!!!
SOS!!!
SOS!!!
SOS!!!
请大家给一个有效的实例代码,解决即给分!。。。
查了一下
request. getServletPath()
这函数可能与Server.MapPath()
类似
没有环境 楼主自己测一下
换个数据库吧。。。
access很少有人用做jsp开发
楼主的信誉好像有点问题,前天我回答过这个问题,现在又重新开贴
那就再回答一次
解决的办法有两个,
第一种,先得到你的虚拟空间的绝对路径,然后替换程序的路径即可
第二种,就是利用severletContext.getRealPath动态获得绝对路径
这样肯定好用的,接分来了,:)
mypath=request.getRealPath("/");
Class.forName="sun.jdbc.odbc.JdbcOdbcDriver";
ConStr="dbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+mypath+"/javaboat/data/boat.mdb";
Connection MyCon=DriverManager.getConnection(ConStr);
看那个网站的帮助,
或找网站的关人员求救.
要不自己搞服务器.
不然没有别人办法了,
System.getProperty("user.dir")
可以使用相对路径名,将你的数据库文件放在固定的目录里,在程序里用..代表上级目录,来定位数据库文件,如下所示
<root>
----<db>---file.mdb
----<code>---index.jsp
<root>是整个程序所在的目录,<code>是含有数据库连接代码的文件所在目录,<db>是数据库文件所在的目录,则可通过以下代码实现
Connection con;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=../db/file.mdb";
con = DriverManager.getConnection(url, "", "");
其他形式的目录结构以此类推.
以上方法在win2k中测试通过