Oracle连接池操作

一:首先是将JDBC的驱动包oracle6.jar复制到Tomcat安装路径下的llib目录下

二:在web工程目录下的META-INF\context.xml文件下输入以下代码(特别注意文件夹别搞错了):

 

<span style="font-size:14px;color:#663366;"><?xml version="1.0" encoding="UTF-8"?>
<Context debug="5" reloadable="true">
 <WatchedResource>WEB-INF/web.xml</WatchedResource>
  
<Resource name="jdbc/oracle" type="javax.sql.DataSource" auth="Container"
    driverClassName="oracle.jdbc.driver.OracleDriver"
    url="jdbc:oracle:thin:@localhost:1521:orcl"
    username="C##SCOTT"
    password="tiger"
    maxActive="5"
    maxIdle="2"
    maxWait="6000"
 />
</Context></span>

 

在myeclipse中没有context.xml文件需要自己创建。

 

三:在web工程目录下的在WEB-INF\web.xml文件下配置以下代码

 

 <span style="color:#009900;"><resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/oracle</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
</resource-ref></span>

 

四:配置完成后便是测试了

    Connection con = null;// 创建一个数据库连接
    Statement stmt = null;// 创建预编译语句对象,一般都是用这个而不用Statement
    ResultSet result = null;// 创建一个结果集对象
    
    try{    
       
        Context Ctx = new InitialContext();

        Context envCtx = (Context) Ctx.lookup("java:comp/env");
         DataSource ds = (DataSource) envCtx.lookup("jdbc/oracle");

        con = ds.getConnection();    
        System.out.println("数据库连接成功!");
        stmt = con.createStatement();    

        String strSql = "select * from usertable2";    

        result = stmt.executeQuery(strSql);    

        while(result.next()){    
             out.print(result.getString("username"));
            }

        }    

        catch(Exception ex){
         out.print("Exception is :"+ex.getMessage());    
         ex.printStackTrace();    
        }
        finally {
            try {
                // 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
                // 注意关闭的顺序,最后使用的最先关闭
                result.close();
                stmt.close();
                con.close();
                System.out.println("数据库连接已关闭!");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。