zoukankan      html  css  js  c++  java
  • Tomcat数据源的原理,配置及使用(JNDI)

    Tomcat数据源的原理,配置及使用

    知识点:

    1.数据源的作用及操作原理;

    2.Tomcat中数据源的配置;

    3.数据源的查找及使用

    传统JDBC使用过程存在以下四个步骤:

    1.加载驱动程序

    2.进行数据库连接

    3.数据库操作

    4.数据库关闭

    对于不同的用户只有操作不同,但是1,2,3三个步骤是一个重复的操作

    如果开始种直接使用JDBC操作的化,那么会产生一种性能的问题

    那么假设数据库不关闭,一户如果有新的用户使用的时候直接取一个已经有的连接就可以了

    这就是数据库连接池,数据库连接池里存放的是数据库的连接

    1.JNDI的配置

    01配置方法1:

    web容器中,数据库的连接池都是通过数据源(javax.sql.DataSource)访问的,:可以通过javax.sql.DataSource类取得一个Connection对象,但是如果要向得到一个DataSource对象需要使用JNDI进行查找,如下图所示:

     

    JNDI属于命名及目录查找借口,主要功能是进行查找的,查找对象.

    数据库的连接池需要在Tomcat上完成配置的,要修改Tomcat的conf目录下的Context.xml文件才可以起作用

    <Context>

    <Resource
    name="jdbc/myschool"
    auth="Container"
    type="javax.sql.DataSource"
    maxActive="100"
    maxIdle="30"
    maxWait="10000"
    username="root"
    password="admin"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/myschool">
    </Resource>

    </Context>

    此配置有几个参数:

      01.name:表示数据源的名称,也是要查找的名称

    02.auth:表示容器负责资源的连接

    03.type:表示对象,数据源上每一个绑定的都是DataSource

    04.Maxactive:最大连接数

    05.maxIdle:处于空闲时间的最大连接数

    对于连接的授权有两种:Container,Application(应用程序必须程序化的登录到资源管理器,基本不用)

    Tomcat6.0以后版本,如果要让一个数据源起作用,还必须在项目下的web.xml里进行如下配置:

    <web-app>

    <resource-ref>
    <description>myschool DataSource</description>  myschool是数据库名字
    <res-ref-name>jdbc/myschool</res-ref-name>     jdbc/myschool和Context.xml中的name值一致
    <res-type>javax.sql.DataSource</res-type>      javax.sql.DataSource和Context.xml中的type值一致
    <res-auth>Container</res-auth>          Container和Context.xml中的auth值一致
    </resource-ref>

    </web-app>

    2.配置方法2

    将Tomcat的conf目录下的Context.xml复制到具体的项目下的META-INF文件夹中,然后添加

    <Context>

    <Resource 
    name="jdbc/myschool" 
    auth="Container"
    type="javax.sql.DataSource"
    maxActive="100" 
    maxIdle="30" 
    maxWait="10000" 
    username="root" 
    password="admin" 
    driverClassName="com.mysql.jdbc.Driver" 
    url="jdbc:mysql://localhost:3306/myschool">
    </Resource>

    </Context>

    就OK了

    JNDI的使用

    步骤:

      01.初始化上下文Context ctx=new InitialContext();

    02.获取数据源DataSource ds=(DataSource )ctx.lookup(“java:comp/evn/jdbc/mldn”)

    03.获取连接Connection conn=ds.getConnection();

    04.关闭连接(使连接恢复空闲状态):conn.close

    常见异常:

  • 相关阅读:
    c# base knowledge
    Asp.net life cycle introduction
    Build a excel which contains downlist.
    using Assembly to create object
    Build a endtoend log to record system performance.
    转帖 饱含人生哲理的真情嘱咐
    Using nunit in website and class project.
    updatepanel summary
    我的项目 系统性能优化
    service数据改变时发广播给前端activity供显示
  • 原文地址:https://www.cnblogs.com/zqr99/p/7527672.html
Copyright © 2011-2022 走看看