zoukankan      html  css  js  c++  java
  • Tomcat配置JNDI数据源

    数据库版本--oracle11g

    tomcat版本--tomca7.0

    ide版本--Eclipse Java EE IDE for Web Developers.

    第一步:

    将数据库驱动程序(jar包)放到项目的WebContent/WEB-INF/lib文件夹下

    第二步:

    在项目的WebContent/META-INF目录下创建一个context.xml文件,里面的内容如下:

    <?xml version="1.0" encoding="UTF-8"?> 
    <Context>
        <Resource 
            name="jdbc/wl" 
            auth="Container" 
            type="javax.sql.DataSource"
            maxActive="100" 
            maxIdle="30" 
            maxWait="10000"
            username="wladmin" 
            password="lan2711" 
            driverClassName="oracle.jdbc.OracleDriver"
            url="jdbc:oracle:thin:@localhost:1521:ORCL"/>
     </Context>        

    附注如下:
    Tomcat标准数据源资源工厂配置项如下:
    * driverClassName - 所使用的JDBC驱动类全称。
    * maxActive - 同一时刻可以自数据库连接池中被分配的最大活动实例数。
    * maxIdle - 同一时刻数据库连接池中处于非活动状态的最大连接数。
    * maxWait - 当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。
    * password - 传给JDBC驱动的数据库密码。
    * url - 传给JDBC驱动的连接URL。
    * user - 传给JDBC驱动的数据库用户名。
    * validationQuery - 一个SQL查询语句,用于在连接被返回给应用前的连接池验证。
    * 如果指定了该属性,则必为至少返回一行记录的SQL SELECT语句。


    jdbc/test是数据源的名称(随意写),
    其他的参数按照自己的实际情况进行修改,例如数据库的名称、账号、密码。

    第三步:

    写个jsp,试一下。

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <%@ page import="java.sql.*,javax.sql.*,javax.naming.*" %>
     4 
     5 <%
     6     Connection conn=null; 
     7     try {
     8         //初始化查找命名空间--Context位于javax.naming包中
     9         Context ctx = new InitialContext();
    10         //找到DataSource,对名称进行定位java:comp/env是必须加的,后面跟你的DataSource名
    11         DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/wl");
    12         //取出连接
    13         conn = ds.getConnection();
    14         System.out.println("连接成功!!");
    15     } catch (NamingException e) {
    16         System.out.println(e.getMessage());
    17     } catch (SQLException e) {
    18         e.printStackTrace();
    19     } finally {
    20         //注意不是关闭,是放回连接池.
    21         conn.close();
    22     }
    23 %>

    结果:连接成功!!

    =========================常见错误======================

    错误提示:cannot load JDBC driver class(不能加载驱动类)

    错误原因及解决方案:通过数据库源访问数据库,数据库由Tomcat创建,应该把JDBC驱动程序的JAR文件复制到项目的WebContent/WEB-INF/lib文件夹下,或tomcat的lib目录下。(参考第一步)

    错误提示:Cannot create JDBC driver of class ' ' for connect URL 'null' (由于连接路径为NULL,不能创建驱动)

    错误原因及解决方案:此类错误多与数据库驱动或者在连接错误时出现,解决的办法就是检查context.xml文件中娄据源配置的文件信息,确保配置信息完全正确。(参考第二步)

    错误提示:Name w is not bound in this Context (jdbc名称没有绑定到上下文)

    错误原因及解决方案:

    1.在使用 lookup() 方法查找数据源时,如果数据源名称与配置中的名称不一致,则程序运行时会所此错误。解决办法就是确保context.xml文件中指定的数据源名称与代码中所要访问的数据源名称一致.

    2.在程序中使用 lookup() 方法查找数据源时,没有使用前缀(java:comp/env/)+数据源名称。则程序运行时会报此错误。解决办法是在使用 lookup() 查找数据源时,使用前缀(java:comp/env/)+数据源名称的形式。

  • 相关阅读:
    接口的理解
    Application.DoEvents()笔记
    c#的DateTime.Now函数详解---来源(笨鸟先飞)
    怎么判断字符串a的内容包含字符串b的内容
    c#下怎么判断一个字符串是否可以转换为double类型
    .net中TreeView使用方法小结(2)
    .net中TreeView使用方法小结(1)
    TT企业微信社群辅助,企业微信社群辅助工具,允许批量添加好友,自动同意添加请求,自动回复消息
    TokenMismatchException Laravel
    实现Nginx Upload 模块 功能上传文件。
  • 原文地址:https://www.cnblogs.com/likailan/p/3263659.html
Copyright © 2011-2022 走看看