• 数据源连接数据库配置相关xml文件


    学完数据源连接数据后,做个笔记,当我们的程序对数据库访问频繁时,为了提高程序运行效率,我们可以通过

    数据源连接数据库,从数据库连接池中直接取得出于空闲状态的数据库连接对象,以下是相关xml文件的配置:

    1、 定义数据源。

    数据源是JNDI(Java Naming and Directory Interface)资源的一种,下面开始定义数据源

    在对应的JavaWeb项目下的META-INF目录下创建一个context.xml文件,

    以下为context.xml文件内容及各属性说明。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <Context>
     3 
     4 <!-- 定义数据源-->
     5 
     6 <!-- 
     7     name:指定Resource的JNDI名字
     8     auth:指定管理Resource的Manager,有两个可选值,Container表示由容器来创建和管理Resource
     9          Application表示由Web应用来创建和管理Resource
    10     type:指定Resource所属的Java类名
    11     
    12     username:数据库用户名  password:连接数据库的口令
    13     driverClassName:指定连接数据库的JDBC驱动器中的Driver实现类的名字
    14     url:指定数据库的URL
    15 
    16 注意:如果url中用到useSSL=true/false,则需要在所有的'&'后面加上"amp;"如下
    17  -->
    18     <Resource name="jdbc/BookDB" auth="Container" type="javax.sql.DataSource"
    19         username="root" 
    20         password="Cz123"
    21         driverClassName="com.mysql.jdbc.Driver"
    22         url="jdbc:mysql://localhost:3306/Books?characterEncoding=utf8&amp;useSSL=true"/>
    23 
    24 </Context>

    1、 声明JNDI资源的引用

    如果Web应用访问了由Servlet容器管理的某个JNDI资源,那么必须在web.xml文件中注册中声明对这个JNDI资源的引用。在项目下的WEB-INF目录下创建web.xml文件

    内容及各属性说明如下:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 
     3 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     4   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     5   xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
     6                       http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     7   version="3.1"
     8   metadata-complete="true">
     9 
    10   <display-name>Tomcat Manager Application</display-name>
    11   <description>
    12     A scriptable management web application for the Tomcat Web Server;
    13     Manager lets you view, load/unload/etc particular web applications.
    14   </description>
    15   
    16    <!-- 声明引用数据源 -->
    17   <!-- 
    18       <res-ref-name>:指定所引用资源的JNDI名字,与定义的数据源的<Resource>元素中的name属性对应
    19       <res-type>:指定所引用资源的类名字,与定义的数据源的<Resource>元素中的name属性对应
    20       <res-auth>:指定管理所引用资源的Manager,与定义的数据源的<Resource>元素中的auth属性对应
    21    -->
    22   <resource-ref>
    23       <description>DB Connection</description>
    24       <res-ref-name>jdbc/BookDB</res-ref-name>
    25       <res-type>javax.sql.DataSource</res-type>
    26       <res-auth>Container</res-auth>
    27   </resource-ref>
    28 
    29 </web-app>

    取得数据库连接:javax.naming.Context ctx = InitialContext();    //取得Context对象

            //调用context对象的lookup方法,通过引用资源的name获得数据源对象

            //因为笔者用的是Tomcat服务器,所有要在name前面加上java:comp/env(固定格式)

                                 javax.sql.DataSource ds = ctx.lookup(“java:comp/env/jdbc/BookDB”);    

             //通过数据源,获得数据库连接对象

            Connection con = ds.getConnection();

  • 相关阅读:
    有效解决 iOS The document “(null)” requires Xcode 8.0 or later.
    扫描项目里没有使用的图片mac工具,删除没有使用的图片以减小包的体积
    苹果客服
    那些你不愿说给领导的话
    没有自动联想补齐代码的解决办法
    第三方的使用
    mac系统如何显示和隐藏文件
    导航栏
    svn(http)
    2020Python练习五
  • 原文地址:https://www.cnblogs.com/caizhen/p/7726197.html
Copyright © 2020-2023  润新知