Tomcat数据源配置路径问题

a921122 2014-02-27 12:38:17
小弟最近做一个网站,使用jsp访问access数据库。
犹豫了解的不深入,对于配置数据源还是一知半解,不知道如何在配置文件中得到Web目录的位置,望指教。

在我的Web项目目录下META-INF下的文件,context.xml如下:
<?xml version="1.0" encoding="UTF-8"?>

<Context>

<Resource

name="JDBC/DBpool"

auth="Container"

type="javax.sql.DataSource"

driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"

url="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=F:/abc.accdb"

maxAction="20"

maxldle="10"

maxWait="-1"

/>

</Context>


其中路径为F盘下的abc.accdb文件
但当我项目发布后,我希望把access文件放到Web项目根目录下,如:
tomcat/webapps/123/123.accdb
但是我不知道如何在xml中获取项目根目录下的路径,望指教。
是否还涉及到修改其他tomcat的配置文件

另附上我的连接池类,DbPool.java
import java.sql.*;

import javax.naming.*;
import javax.sql.DataSource;
//连接池类
public class DbPool {

private static Connection conn;//声明数据库连接对象

public void createConn() {
try {
//声明数据源
Context initCtx = new javax.naming.InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("JDBC/DBpool");
//获取数据源
conn = ds.getConnection();
System.out.println("db connect success");
} catch (Exception e) {
System.out.println("db connect error");
e.printStackTrace();
}
}
//执行sql语句,返回result
public ResultSet executeQuery(String sql) {
ResultSet rs = null;
if (conn == null) {
createConn();
}
try {
Statement st = conn.createStatement();
rs = st.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
return rs;

}
}

...全文
246 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
topshow_2010 2014-02-27
  • 打赏
  • 举报
回复
为什么我每次看帖每次都回复,就是没有分呢?
a921122 2014-02-27
  • 打赏
  • 举报
回复
引用 1 楼 defonds 的回复:
最好找个 demo 看看
就是没有连接access数据库的demo,有也是连接的本地路径。 我看有连接其他类型的数据库,但是他们都是有服务的,直接访问的是端口。access数据库只有一个文件,不知道该如何访问。
Defonds 2014-02-27
  • 打赏
  • 举报
回复
最好找个 demo 看看
a921122 2014-02-27
  • 打赏
  • 举报
回复
引用 4 楼 GZQ0821 的回复:
我以前也做过java程序连接Access数据库不过我的连接数据库路径跟你一样 jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=E:/SQL/HG_Switch.mdb
您好。您说的方法我有考虑过,可是我不知道我这个项目在别人那个有没有这样一个盘符,我无法把路径写死。
a921122 2014-02-27
  • 打赏
  • 举报
回复
引用 5 楼 xiaonannew 的回复:
第一点,你不用非要把数据库放在你的项目下。路径是你自己定义的,随便放哪里都可以。这样你简单很多。 第二点,如果你非要放在项目里,用你的myeclipse新建一个jsp,最上面的几行 String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 完全打印出来你就有答案了。 第三点,如果你一定要放在你的项目里,在XML里面写死就行了。。。
你好。但是我这个是为别人做的项目,我不知道别人的tomcat在哪个盘,没有办法写死。 另外,您说从jsp中可以得到目录路径,这个我知道,我很想知道,如何把这个路径传入xml文件中。
小南xyz 2014-02-27
  • 打赏
  • 举报
回复
第一点,你不用非要把数据库放在你的项目下。路径是你自己定义的,随便放哪里都可以。这样你简单很多。 第二点,如果你非要放在项目里,用你的myeclipse新建一个jsp,最上面的几行 String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 完全打印出来你就有答案了。 第三点,如果你一定要放在你的项目里,在XML里面写死就行了。。。
gzqGyula 2014-02-27
  • 打赏
  • 举报
回复
我以前也做过java程序连接Access数据库不过我的连接数据库路径跟你一样 jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=E:/SQL/HG_Switch.mdb

81,092

社区成员

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

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