zoukankan      html  css  js  c++  java
  • 使用jndi连接数据库

    作为新手,首次尝试同jndi连接数据库,遇到不少困难,总结一下知识点,以免忘记:

        JNDI是J2EE中一个很重要的标准,通常我们是在J2EE编程中用到,Tomcat中提供了在JSP和Servelt中直接使用JNDI的方法,主要是通过dbcp连接池

        重点讲使用:

            1.配置context.xml

        注意地址是:tomcat安装目录下的conf该目录下应该有了context.xml文件。貌似以前的版本是在项目目录中的META-INF目录下配置,我刚开始时参考是也是老版本的操作方法,谁知道试了一晚都不行。。。如果不是那里配置的话会可能出现这样的错误提示:javax.naming.NameNotFoundException: Name jdbc is not bound in this Context?

            现在开始配置:

    <Context path="/Manager" reloadable="true">
    <Resource
    name="hello"
    type="javax.sql.DataSource"
    driverClassName="com.mysql.jdbc.Driver"
    username="root"
    password="123456"
    maxIdle="4"
    maxActive="4"
    maxWait="5000"
    url="jdbc:mysql://127.0.0.1/jspdev"
    />
    </Context>
    其中:
    name:指定Resource的JNDI名字
    type:指定Resource所属的Java类名
    driverClassName:指定连接数据库的JDBC驱动程序
    username:指定连接数据库的用户名
    password:指定连接数据库的口令
    maxIdle:指定数据库连接池中的最大空闲连接数目,0表示不受限制
    maxActive:指定数据库连接池中的最大活动连接数目,0表示不受限制
    maxWait:指定连接池中连接处于空闲状态的最长时间,超过会抛出异常,-1表示无限
    url:指定连接数据库的URL

      2.将jdbc驱动包放在tomcat安装目录的lib文件夹下

      3. 在Web应用中使用数据源:
    javax.naming.Context提供了查找JNDI Resource的接口,可以通过三个步骤来使用数据源对象:
    A.获得对数据源的引用:
    Context ctx = new InitalContext();
    DataSource ds =
    (DataSource)ctx.lookup("java:comp/env/hello");
    B.获得数据库连接对象:
    Connection con = ds.getConnection();

    C.返回数据库连接到连接池:
    con.close();
    在连接池中使用close()方法和在非连接池中使用close()方法的区别是:前者仅仅是把数据库连接对象返回到数据库连接池中,是连接对象又恢复到空闲状态,而非关闭数据库连接,而后者将直接关闭和数据库的连接。

    刚刚接触jdni对于原理还不清楚,先记住方法先

  • 相关阅读:
    学习Java书籍推荐和面试网站推荐
    Java 多线程学习扩展
    Java Excel 导入导出(二)
    Java Excel 导入导出(一)
    Matplotlib库(二)
    Matplotlib库(一)
    【转】MATLAB导出精美的论文插图
    图像的手绘效果
    Numpy库的使用(二)
    Numpy库的使用(一)
  • 原文地址:https://www.cnblogs.com/yaoxing92/p/2921430.html
Copyright © 2011-2022 走看看