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

歡迎訪問 生活随笔!

生活随笔

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

java

JavaWeb:Tomcat下配置数据源连接数据库

發布時間:2025/7/14 java 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaWeb:Tomcat下配置数据源连接数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

習慣了以硬編碼的形式在程序中建立數據庫連接,用完就在finally語句塊中close一下就結束了。對于重視數據庫連接數的應用來說,這樣子做會耗費大量的時間和數據庫資源,而且硬編碼的形式也不甚靈活。

?

Tomcat這個Java Web容器下通過配置DataSource(數據源)對象可以解決上面所述的問題。JDBC中的javx.sql.DataSource接口負責建立于數據庫的連接,程序中直接從數據源中獲取數據庫連接。DataSource對象由Servlet容器Tomcat進行管理,其實獲取數據庫連接是從連接池中選取空閑連接。它基于Java中的JNDIJava 命名與目錄接口)來實現。

?

配置數據源context.xml

Java Web應用的META-INF目錄下新建一個context.xml配置文件,其中的<Resource>元素用于定義JNDI資源,內容如下:

  • <Context?reloadable="true"?>?
  • ????<Resource??
  • ????????name="jdbc/?DBname?"?
  • ????????auth="Container"??
  • ????????type="javax.sql.DataSource"?
  • ????????maxActive="100"?maxIdle="30"?maxWait="10000"?
  • ????????username="root"?password="123"??
  • ????????driverClassName="com.mysql.jdbc.Driver"?
  • ????????url="jdbc:mysql://localhost:3306/?DBname?autoReconnect=true"?
  • ????/>?
  • </Context>?
  • ?

    <Resource>元素的屬性說明:

    ?

    Name:指定Resource資源的JNDI名稱;

    auth:可選填ContainerApplication,指定Resource的管理者;

    type:指定Resource資源的Java類名;

    maxActive:設置數據庫連接池中活動狀態連接的最大數目,為0則不受限制;

    maxIdle:設置數據庫連接池中空閑狀態連接的最大數目,為0則不受限制;

    maxWait:設置數據庫連接池中空閑狀態連接的最長等待時間,超時則拋出異常,為-1則可無限等待;

    username:指定數據庫的用戶名;

    password:指定連接數據庫的密碼;

    driverClassName:指定數據庫的JDBC驅動器的Driver實現類名字(這里為MySQL數據庫連接);

    url:連接數據庫的url。

    ?

    注:可在<CATALINA_HOME>/conf/server.xml 文件中的對應<Host>元素中如上配置<Resource>子元素以供Tomcat容器內的多個Web應用使用。

    ?

    配置JNDI資源引用web.xml?

    Java Web應用中要使用JNDI資源,必須在web.xml中配置對該JNDI資源的引用<resource-ref>元素。內容如下:

  • <web-app>?
  • ????<resource-ref>?
  • ????????<description>DB?Connection</description>?
  • ????????<res-ref-name>jdbc/DBname?</res-ref-name>?
  • ????????<res-type>javax.sql.DataSource</res-type>?
  • ????????<res-auth>Container</res-auth>?
  • ????</resource-ref>?
  • </web-app>?
  • ?

    <resource-ref>元素的子元素說明:

    ?

    description:對所引用JNDI資源的描述;

    res-ref-name:引用的JNDI資源的名稱,與上面<Resource>元素中的name屬性一致;

    res-type:引用的JNDI資源的類名稱,與上面<Resource>元素中的type屬性一致;

    res-auth:引用資源的管理者,上面<Resource>元素中的auth屬性一致;

    ?

    Web應用中使用數據源:?

    使用DataSource連接數據庫,不再用以下方式來建立到數據庫的連接了。

  • Connection?conn?=?null;?
  • ?????????????????????
  • Class.forName("com.mysql.jdbc.Driver");?
  • ?????????????????????
  • String?dbUrl?=?"jdbc:mysql://localhost:3306/DBname";?
  • String?dbUser?=?"root";?
  • String?dbPwd?=?"123";?
  • ?????????????????????
  • conn?=?DriverManager.getConnection(dbUrl,?dbUser,?dbPwd);?
  • ?

    而是使用相對簡單些的JNDI資源訪問方式lookup方法,如下:

  • Context?sourceCtx?=?new?InitialContext();?
  • DataSource?ds?=?
  • (DataSource)?sourceCtx.lookup("java:comp/env/jdbc/?DBname?");?
  • conn?=?ds.getConnection();?
  • ?

    ?

    注:使用DataSource方式連接數據庫,當使用完數據庫操作之后調用各種資源對象的close方法時,由Tomcat容器調回這些連接到連接池中進行管理,而不是直接與數據庫斷開連接。

    轉載于:https://blog.51cto.com/haolloyin/396210

    總結

    以上是生活随笔為你收集整理的JavaWeb:Tomcat下配置数据源连接数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

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