String path="";
Class theClass=DataBase.class;
java.net.URL u= theClass.getResource("db/db.mdb");
System.out.println(u.getPath().substring(1,u.getPath().length()).replaceAll("%20", " "));
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+u.getPath().substring(1,u.getPath().length()).replaceAll("%20", " ");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection(url);
为什么要用数据源?不方便程序移植,直接把路径定死也不方便。
我这段代码就是把数据库文件放到了 当前类 目录同级下的一个 “db”文件夹里面。
java.net.URL u= theClass.getResource("db/db.mdb");
可以把数据库文件的绝对路径取出来。
u.getPath().substring(1,u.getPath().length()).replaceAll("%20", " ")
这句是把里面的空格替换回来,因为取出来的路径中的空格被"%20"代替了,我们要把他替换回来。
经过测试可用的!
你再仔细看看他项目的说明,有的access数据库不用添加数据源,但是需要放在指定的地方,比如
Connection conn = DriverManager.getConnection("jdbc:odbc:driver={microsoft access driver (*.mdb)};dbq=c:/db.mdb","", "");
这个就是要方C盘下,你看看说明吧再
tomcat 没有问题,问题出在数据库。好好检查一下数据库有什么地方不正确
数据源名字有没错 最好用系统数据源