伊峰独居

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  30 随笔 :: 30 文章 :: 5 评论 :: 0 Trackbacks

数据库连接池终极解决方案

本指南将说明如何在自己安装的tomcat中配置好数据库连接池。

装好tomcat后,启动tomcat。在地址栏输入:http://localhost:8080/回车,应该可以看到tomcat的欢迎界面了。本指南不是针对tomcat,其他详情请自己找吧。现在在地址栏输入:http://localhost:8080/admin回车,应该可以看到他的登录界面了。如果你恰好有一个工程名叫做admin,那么,先把它删掉吧,最好连tomcat根目录中的work文件加一起删掉就应该可以了,实在不行就重新安装。

填上你刚才的帐号密码,登陆。别说你不是刚装的,早就忘了帐号密码了。最简单的方法,重新安装。如果你原来手工蹂躏过tomcat,那么一定舍不得重装,还有个办法,找到tomcat根目录/conf/tomcat-users.xml。打开,有一行看上去是这样的 <user username="funcreal" password="123456" roles="admin,manager"/> ,你应该知道怎么回事了吧,funcreal就是帐号,123456就是密码。

登陆进tomcat的后台,按顺序点开TomcatService->Service->Host->你希望配置连接池的工程->Resources->Data Sources。你应该在右侧看到了配置连接池的友好的界面。从下拉列表中选择:Create New Data Source。打开一个新的数据库连接池配置页。

JNDI NAME: jdbc/mssql ;在应用程序中要用到。

Data Source URL:  就是连接字符串

JDBC DRIVER CLASS:   就是驱动;

帐号密码是自己的数据库的帐号密码,其余的都默认就行了。最后一项可以不填。最后, save->commit changes 。一切就是这么简单。

接着 修改tomcat根目录/conf/Catalina/localhost下的web名称.xml添加如下语句:

<ResourceLink name=" JNDI Name " type=" javax.sql.DataSourcer " global=" JNDI Name "/>

Ok ,可以进行测试了!

本例(SQL2000 & mySQL)配置如下:

JNDI Name: jdbc/mssqltest    / jdbc/mysqltest

Data Source URL:  jdbc:microsoft:sqlserver://127.0.0.1;databaseName=stu_man

/ jdbc:mysql://127.0.0.1/stu_man

JDBC Driver Class: com.microsoft.jdbc.sqlserver.SQLServerDriver

/ com.mysql.jdbc.Driver

User Name: sa     /root

Password: 123456  /123456   其他默认即可。

接着 ,修改tomcat根目录/conf/Catalina/localhost即:

D:\Program Files\Java\Tomcat 5.0\conf\Catalina\localhost 下的

connpool.xml, 添加如下语句:

<ResourceLink name="jdbc/mssqltest" type="javax.sql.DataSourcer" global="jdbc/mssqltest"/>

<ResourceLink name="jdbc/mysqltest" type="javax.sql.DataSourcer" global="jdbc/mysqltest"/>

下面开始测试,测试文件内容如下:

<%@ page contentType="text/html; charset=GBK" errorPage="error.jsp"%>

<%@ page import="java.sql.*" %>

<%@ page import="javax.sql.*" %>

<%@ page import="javax.naming.*" %>

<html>

<head>

<title>hhh</title>

<%

Connection con=null;

Statement sm=null;

ResultSet rs=null;

try{

   InitialContext ctx=new InitialContext();

   DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mssqltest");

   con=ds.getConnection();

   sm=con.createStatement();

   rs=sm.executeQuery("select * from student");

  

   while(rs.next())

   {

   out.println(rs.getString("name"));

   out.println("id:"+rs.getString("id"));

   }

}catch(Exception e){

   e.printStackTrace();

}finally{

  if(rs!=null){

        try{

               rs.close();

            }catch(SQLException e){}

            rs=null;  

    }

    if(sm!=null)

    {

    try{

            sm.close();

            }catch(SQLException e){}

            sm=null;

    }

    if(con!=null)

    {

    try{

            con.close();

            }catch(SQLException e){}

            con=null;

    }

}

%>

</head>

<body>

</body>

</html>

posted on 2006-08-17 16:29 伊峰 阅读(189) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问