1. 程式人生 > >數據源連接數據庫配置相關xml文件

數據源連接數據庫配置相關xml文件

servle b- 內容 筆記 icu web-inf tom ica 得出

學完數據源連接數據後,做個筆記,當我們的程序對數據庫訪問頻繁時,為了提高程序運行效率,我們可以通過

數據源連接數據庫,從數據庫連接池中直接取得出於空閑狀態的數據庫連接對象,以下是相關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();

數據源連接數據庫配置相關xml文件