Tomcat 6.0 配置oracle数据库连接池

第一种方法:

  1. TomCat6.0数据库连接池配置实例(Oracle 10g数据库)
  2. 关键字: 数据库连接池 
  3. TomCat6.0数据库连接池配置有几种方式,在这里我介绍一种常用的方法供大家参考: 
  4. 配置过程分成三个步骤来完成: 
  5. 第一步:在TomCat6.0的目录下找到context.xml配置文件。(例如:C:/apache-tomcat-6.0.14/conf/context.xml)然后打开context.xml,在标签<context><context/>之间加入如下内容:(为了容易理解,我对配置做了较详细的注释,实际使用时请将注释去掉) 
  6.  <Resourcename="jdbc/DBPool" <!--数据源名称,最好起一个有意义的名称-->
      auth="Container"    <!--这个默认无需修改-->
      type="javax.sql.DataSource" <!--这个默认无需修改-->
      driverClassName="oracle.jdbc.driver.OracleDriver" <!--这里用到的是oracle数据库的驱动包。--> 
      url="jdbc:oracle:thin:@192.168.1.97:1521:orcl"<!--这里是连接到oracle数据库的url,其中url="jdbc:oracle:thin:@"是固定的,如果访问oracle数据库不在本机上应该将localhost改为oracle数据库所在机子的IP地址,zygora是我的oracle数据库的SID。-->
       username="hr"<!--登陆数据库的用户名 -->
      password="hr"  <!--登陆数据库的密码-->
      maxIdle="5"  <!--这个默认无需修改-->
      maxWait="5000" <!--这个默认无需修改-->
      maxActive="10" <!--这个默认无需修改-->
      />
  7. 第二步:下载oracle驱动包ojdbc6.jar,拷贝到TomCat6.0目录下的lib目录里。(例如:C:/apache-tomcat-6.0.14/lib)ojdbc6.jar的oracle官方网址我这里一直打不开,CSDN里有该jar包的下载。
  8. 第三步:程序中需要数据库连接的地方,只需要编写如下代码:
  9. import javax.sql.DataSource; 
  10. import javax.naming.*;
  11. public class GetConnectionTest 
  12. public static void main(String[] args) 
  13. try 
  14. Context initContext = new InitialContext();
       Context envContext =(Context)initContext.lookup("java:comp/env");
       ds =(DataSource)envContext.lookup("jdbc/DBPool");// 这里根据配置更改
  15. Connection conn ds.getConnection(); 
  16. catch (Exception e) 
  17. e.printStackTrace(); 

第二种方法:

1、首先备份你的$TomcatHome$/conf/server.xml文件($TomcatHome$是指你的tomcat安装路径),然后在节点下添加,即在之前:


path="/sfx" docBase="sfx" debug="5" reloadable="true"crossContext="true">
 name="jdbc/myoracle"auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"url="jdbc:oracle:thin:@192.168.148.227:1521:account"username="cac" password="sudajsj" maxActive="0" maxIdle="10"maxWait="-1" />
 

解释:path下是要连数据库的工程名,每次要改的;name是自己随便起的名字,但是要记住,后面要用到。driverClassName、url、username、password等是与具体的数据库有关系,这里是oracle为例。

2、下面打开工程sfx下WebRoot下WEB-INF下的web.xml文件,在其根节点下添加数据源的引用设置。

代码
  1. <</SPAN>resource-ref>  
  2.  jdbc/myoracle  
  3.  <</SPAN>res-type>javax.sql.DataSource</</SPAN>res-type>  
  4.   <</SPAN>res-auth>Container</</SPAN>res-auth>  
  5. </</SPAN>resource-ref>  


3、最后我们在代码中从连接池获得Connection对象。

jsp页面中的代码如下:

<%@ page language="java" contentType="text/html;charset=gb2312"
   pageEncoding="gb2312" import="java.sql.*"import="javax.naming.*"
import="javax.sql.DataSource"
%>

<%
DataSource  ds=null;
Connection con=null;
ResultSet rs=null;
 if(ds==null)  
  
  System.out.println("init  DataSource");  
  //Context context = null;
  try {
   ContextinitContext = new InitialContext();
   ContextenvContext = (Context)initContext.lookup("java:comp/env");
   ds =(DataSource)envContext.lookup("jdbc/myoracle");// 这里根据配置更改
   //ds =(DataSource)context.lookup("java:comp/env/jdbc/myoracle");
  } catch (NamingException e){
   // TODOAuto-generated catch block
   e.printStackTrace();
  }
  
 try {
  con=ds.getConnection();
 } catch (SQLException e) {
  // TODO Auto-generated catchblock
  e.printStackTrace();
 }
 
 PreparedStatement stmt = null;
 try {
  stmt =con.prepareStatement("select * from tb_admin");
 } catch (SQLException e) {
  // TODO Auto-generated catchblock
  e.printStackTrace();
 }
 try {
  rs= stmt.executeQuery();
 } catch (SQLException e) {
  // TODO Auto-generated catchblock
  e.printStackTrace();
 }
 String id="";
 if(rs.next())
 {
  id=rs.getString("admin_id");
 }
%>


这样我们就在代码中获得了Connection对象,至于剩下的操作,就完全是jdbc操作了。

千万不要忘记在工程中还要把相应的驱动jar包引入,以及放到tomcat目录下的common/lib下

补充:

以上的方法是作用在所有使用该Tomcat应用服务器的WEB应用都可以通过JNDI来查找和使用该数据库连接池。在TOMCAT_HOME/conf/Catalina/localhost下新建配置文件的方式。比如新建一个Web应用Test,就可以在上面的目录下建立Test.xml文件,在这个文件中配置数据库信息,而不是在TOMCAT_HOME/conf/server.xml文件中,这样就只对Test这个项目有用对其他的没有用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值