数据源连接数据库配置相关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();

 

posted @ 2017-10-24 22:21  空芯菜  阅读(7683)  评论(0编辑  收藏  举报