數據源連接數據庫配置相關xml文件
阿新 • • 發佈:2017-10-25
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&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文件