日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java Web使用数据库连接池

發布時間:2024/10/8 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java Web使用数据库连接池 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這里使用的Web服務器是Tomcat服務器

方法一、

1.1? 配置context.xml文件

context.xml文件路徑: D:\Tomcat 7\conf\context.xml?? ??? ?路徑是參考,根據實際情況尋找context.xml

在<Context>節點下添加<Resource>標簽元素

<Context><Resource name="jdbc/news" auth="Container" type="javax.sql.DataSource"maxActive="100" maxIdle="30" maxWait="10000" username="root"password="123" driverClassName="com.mysql.cj.jdbc.Driver"url="jdbc:mysql://127.0.0.1:3306/newsmanagersystem?useUnicode=true&amp;characterEncoding=utf-8"/> </Context>

Resource元素屬性,屬性名不能自定義,不要打錯

屬性說明
nameResource的JNDI名字
auth

指定管理Resource的Manager,有兩個可選值:Container和Application。

Container:表示有容器創建Resource 。Application:表示有Web應用創建和管理Resource

type指定Resource的Java類型
maxActive連接池最大連接對象數量
maxIdle連接池初始的連接對象數量
maxWait超出初始連接數量后的連接處于空閑狀態的時間(時間過后如果還處于空閑狀態被對象關閉)
username數據庫用戶名
password數據庫密碼
driverClassName指定數據庫的JDBC驅動程序
url指定數據庫的連接地址(127.0.0.1:3306是回環地址)

?

1.1? 配置web.xml文件

web.xml文件的路徑:WebRoot/WEB-INF/web.xml? ? ? ? 路徑是相對路徑,相對Web項目

在<web-app>節點下添加<resource-ref>標簽元素

<web-app> <resource-ref><description>news DataSource</description><res-ref-name>jdbc/news</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref> </web-app>
屬性說明
description對所引用資源的說明
res-ref-name指定所引用資源的JNDI名字,與<Resource>標簽中的name屬性對應
res-type指定所引用資源的類型,與<Resource>標簽中的type屬性對應
res-auth指定所引用資源的Manager,與<Resource>標簽中的auth屬性對應

?

方法二、

2.1?創建并配置context.xml文件

聲明:這個方法不需要配置Tomcat服務器中的context.xml文件,也不需要配置Web項目中的web.xml文件

只需要在需要使用數據庫連接池的Web項目中WebRoot目錄下的META-INF目錄中創建一個context.xml文件,添加<Context>節點,然后在節點中添加<Resource>節點以及其內容即可!(內容參照1.1配置context.xml文件)

?

在項目中從數據庫連接池中獲取數據庫連接對象

此處不做過多解釋,有疑問看代碼中的注釋

import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; /*** 定義數據庫工具類型* 實現方法:* 1.獲取數據庫連接對象* 2.關閉數據庫對象的方法* @return*/ public class DatabaseUtil {//定義getConnection()方法 即一個獲取數據庫連接對象的方法public static Connection getConnection() {//創建Context,DataSource,Connection的對象,但不實例化,方面后期實例化使用//javax.naming包下的Context,這里聲明其對象主要用其方法讀取配置中的數據庫池Context ctx = null;//javax.sql包下的DataSource,主要用于接收Context方法讀取到的數據庫連接池DataSource ds = null;//數據庫連接對象,主要用于從DataSource中獲取到一個數據庫連接對象Connection conn = null;try {//通過InitialContext()方法獲取Context對象的實例ctx = new InitialContext();//通過Context的lookup()方法讀取到連接池并強轉成DataSource類型//(DataSource)用于強轉類型//lookup方法中的寫法:("java:comp/env/"+name屬性值) java:comp/env/是固定路徑寫法 后面跟配置文件中的name屬性值ds = (DataSource) ctx.lookup("java:comp/env/jdbc/news");//使用.getConnection()方法從數據庫中獲取一個連接對象conn = ds.getConnection();} catch (NamingException e) {// TODO 自動生成的 catch 塊e.printStackTrace();} catch (SQLException e) {// TODO 自動生成的 catch 塊e.printStackTrace();}//返回已經獲得到的數據庫連接對象,實現方法最終目的return conn;}//關閉對象方法,和本文章無關,不多做解釋public static void closeAll(Connection conn,PreparedStatement pdst,ResultSet rest) {try {if(rest!=null) {rest.close();}if(pdst!=null) {pdst.close();}if(conn!=null) {conn.close();}} catch (SQLException e) {// TODO 自動生成的 catch 塊e.printStackTrace();}} }

?

文章中如果有錯誤地方請留言或私信提示,文章寫的有些許倉促,恐有錯誤的地方,請及時提示,一面誤人子弟

總結

以上是生活随笔為你收集整理的Java Web使用数据库连接池的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。