如何利用Database Connection Pool?

drugon 2004-08-20 05:33:58
我个人用的是Tomcat 4.1.30版的,并且我在Tomcat中己经配置好了Database Connection Pool,同时也在JSP页面中可以得到数据库的连接了。我现在想将得到数据库的连接放在一java文件中去,而不是只能在JSP页面中得到。例如我写了下面一个文件:
import java.io.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
public class test
{
public static void main(String args[])
{
Context ctx=null;
DataSource ds=null;
Connection conn=null;
PreparedStatement pre=null;
ResultSet res=null;
String sql="select * from projectprogress";
try
{
ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
if (ds != null)
conn = ds.getConnection();
pre=conn.prepareStatement(sql);
res=pre.executeQuery();
while (res.next())
{
System.out.println(res.getFloat("ProgressID"));
System.out.println(res.getString("ProgressDescription"));
}
}
catch (Exception e)
{
System.out.println(e);
}
}
}
这个文件在编译的时候没有问题,而且把这些代码放到一个JSP页面中运行也没有问题,但是一在Java下面单独运行时,就出现下面的异常
javax.naming.NoInitialContextException:
Need to specify class name in environment
or system property,
or as an applet parameter,
or in an application resource file: java.naming.factory.initial
请问我该如何做才能使这个文件可以直接运行?
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaofan81 2004-08-26
  • 打赏
  • 举报
回复
可以用javabean啊
drugon 2004-08-26
  • 打赏
  • 举报
回复
可能是我没有把问题说清楚吧,我原本是想把数据库的连接放到一个文件中,然后要用连接的其它文件直接把那个文件包含进来就可以了,己经实现了。也就是把那些文件当作一些jsp的classes存放起来,放在自己的应用程序文件夹的classes文件夹下面,然后在jsp页面中只要用import导入包就可以了。
shangqiao 2004-08-23
  • 打赏
  • 举报
回复
当然会出现问题了,当你在JSP现面运行时,你的JSP容器可以发现自己,也就是说知道JNDI的地址,那么便可一找到JNDI的参数(使用JNDI至少要要两个参数的,一个factory的实现子类,一个是服务器地址),但是你在单独作为Java类来调用时,使用自己的JVM,他怎么知道这个服务的地址在哪儿,用哪一个类
javacsdner 2004-08-23
  • 打赏
  • 举报
回复
study
drugon 2004-08-23
  • 打赏
  • 举报
回复
可是我现在想把数据库的连接交给Tomcat去管理,将数据库的连接写在一个文件中,其它需要连接的文件则只需要包含这个连接文件就可以了。我应该怎么做?
chense 2004-08-20
  • 打赏
  • 举报
回复
Tomcat的Database Connection Pool不是很好,会无缘无故连接不上,建议还是使用Weblogic的。

81,095

社区成员

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

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