java通过数据库连接池链接oracle

  开发工具:Eclipse J2EE 3.6

  运行环境:jdk1.6

  部署环境:Tomcat7

  数据库连接池用的是 dbcp,网上 download 下来的三个 jar 包。

  把数据库连接池包和 jdbc 的包放到 tomcat 的 lib 下。

  新建 web project,在 META-INF 下新建 context.xml 文件,放入代码(一系列配置)。

<Context  path="Prj02" docBase="Prj02"
    debug="5" crossContext="true" reloadable="true"
    cachingAllowed="true" cacheMaxSize="20480"
    cacheTTL="10000">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Resource 
        name="jdbc/Prj02" 
        auth="Container" 
        type= "javax.sql.DataSource" 
        factory="org.apache.commons.dbcp.BasicDataSourceFactory"
        driverClassName="oracle.jdbc.driver.OracleDriver" 
        url="jdbc:oracle:thin:@localhost:1521:orcl"
        username="yff" 
        password="yff"
        maxActive="100" 
        maxIdle="30"
        maxWait="10000">
    </Resource>    
</Context>

  WebContent 下新建 index.jsp,放入代码(jdbc 连接,sql 语句查询)。

  

<%@ page import="java.sql.*,javax.sql.*,javax.naming.*,org.apache.commons.dbcp.BasicDataSource,javax.rmi.PortableRemoteObject;" %>
<%
    Connection conn = null;
    Connection m_conn;     
    Statement m_stat;
    try{
        Context ctx = new InitialContext(); 
            Object obj = ctx.lookup("java:comp/env/jdbc/Prj02");
            DataSource ds = (DataSource)PortableRemoteObject.narrow(obj, DataSource.class);
            conn = ds.getConnection();
            if(conn!=null){
                m_conn = ds.getConnection();
                m_stat = m_conn.createStatement();
                ResultSet rs = m_stat.executeQuery("select * from TEST");
            </span><span style="color: rgba(0, 0, 255, 1)">while</span><span style="color: rgba(0, 0, 0, 1)">(rs.next()){

                
                   out.print(</span>"id =" + rs.getInt("id") + ", name=" + rs.getString("name")+"\n"<span style="color: rgba(0, 0, 0, 1)">  );
        }
        }
   }</span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)"> (Exception e) {
    out.print(e.getMessage());
       e.printStackTrace();
  }</span><span style="color: rgba(0, 0, 255, 1)">finally</span><span style="color: rgba(0, 0, 0, 1)"> {
    </span><span style="color: rgba(0, 0, 255, 1)">if</span>(conn!=<span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">)  conn.close();
  }

%>

  部署至 Tomcat 上。

  (oracle 内数据)

  部署之后的效果。