1. 程式人生 > >JDBC之連線池: Tomcat 8.5 MySQL資料庫連線池的配置與使用

JDBC之連線池: Tomcat 8.5 MySQL資料庫連線池的配置與使用

簡介

本文以MySQL資料庫為例,介紹Tomcat 8.5環境下,其預設的資料庫連線池DBCP配置與使用.

連線池簡介

資料庫連線池是在使用者和資料庫之間建立一個”池”,這個池是用來存放資料庫連線物件。回收和重用已存在的資料庫連線比新建一個連線更高效。當用戶想要連線資料庫,就要先從連線池中獲取連線物件,然後操作資料庫; 操作完成後,將連線物件歸還給連線池。一旦連線池中的連線物件被取完,下一個想要操作資料庫的使用者必須等待其他使用者釋放連線物件,從而獲取連線物件並操作資料庫。

配置步驟

1. MySQL配置

建立測試用的資料庫,測試使用者和單個測試表。

mysql> GRANT ALL PRIVILEGES ON *.* TO 
[email protected]
-> IDENTIFIED BY 'javadude' WITH GRANT OPTION; mysql> create database javatest; mysql> use javatest; mysql> create table testdata ( -> id int not null auto_increment primary key, -> foo varchar(25), -> bar int); mysql> insert into testdata values(null, 'hello', 12345); Query OK, 1 row affected (0.00 sec) mysql> select * from testdata; +----+-------+-------+ | ID | FOO | BAR | +----+-------+-------+ | 1 | hello | 12345 | +----+-------+-------+ 1 row in set (0.00 sec) mysql>

2. Context配置

通過在tomcat安裝目錄下conf/context.xml配置檔案增加資源宣告來配置JNDI DataSource。

<Context>

    <!-- maxTotal: Maximum number of database connections in pool. Make sure you
         configure your mysqld max_connections large enough to handle
         all of your db connections. Set to -1 for no limit.
         -->

    <!-- maxIdle: Maximum number of idle database connections to retain in pool.
         Set to -1 for no limit.  See also the DBCP documentation on this
         and the minEvictableIdleTimeMillis configuration parameter.
         -->

    <!-- maxWaitMillis: Maximum time to wait for a database connection to become available
         in ms, in this example 10 seconds. An Exception is thrown if
         this timeout is exceeded.  Set to -1 to wait indefinitely.
         -->

    <!-- username and password: MySQL username and password for database connections  -->

    <!-- driverClassName: Class name for the old mm.mysql JDBC driver is
         org.gjt.mm.mysql.Driver - we recommend using Connector/J though.
         Class name for the official MySQL Connector/J driver is com.mysql.jdbc.Driver.
         -->

    <!-- url: The JDBC connection url for connecting to your MySQL database.
         -->

  <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
               maxTotal="100" maxIdle="30" maxWaitMillis="10000"
               username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/javatest"/>

</Context>
3. web.xml配置

在WEB-INF/web.xml中新增下列的配置項:

  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
4. 測試

通過下列簡單的JSP檔案test.jsp來對使用者資訊進行測試

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/TestDB">
select id, foo, bar from testdata
</sql:query>

<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>

  <h2>Results</h2>

<c:forEach var="row" items="${rs.rows}">
    Foo ${row.foo}<br/>
    Bar ${row.bar}<br/>
</c:forEach>

  </body>
</html>

相關推薦

JDBC連線 Tomcat 8.5 MySQL資料庫連線配置使用

簡介 本文以MySQL資料庫為例,介紹Tomcat 8.5環境下,其預設的資料庫連線池DBCP配置與使用. 連線池簡介 資料庫連線池是在使用者和資料庫之間建立一個”池”,這個池是用來存放資料庫連線物件。回收和重用已存在的資料庫連線比新建一個連線更高效。當用戶想要連線資料庫,

mysql資料庫連線異常問題(總結) mysql資料庫連線異常問題(總結)

mysql資料庫連線異常問題(總結) 1.1 前言     最近專案由1個數據源增加至了3個數據源(連線池使用C3P0),結果各種奇葩的資料庫連線問題接踵而至,為防止將來再次遇到同樣的問題不犯同樣錯誤,現總結如下。 1.2  An attempt by

Tomcat 8.5 400錯誤Invalid character found in the request target. 問題解決方法

最近部署專案的時候,由於MIS配置的是Tomcat 8.5的服務端,導致Web應用不正常,報HTTP 400錯誤(Chrome無異常、IE報錯)。問題原因初步判斷為8.5版本的服務端接收請求不會對符號進行轉義,Chrome不異常的原因或許是瀏覽器自身轉義了。具

tomcat JDK8.0安裝、tomcat-8.5.15安裝

前言: JDK(Java Development Kit)是Sun Microsystems針對Java開發員的產品。自從Java推出以來,JDK已經成為使用最廣泛的Java SDK. JDK是整個Java的核心,包括了Java執行環境,Java工具和Java基礎的類庫。

Tomcat專案啟動不了,也不報錯,一直卡在Deploying web application directory [D:\apache-tomcat-8.5.31\webapps\docs]已解決

在百度上搜索了好久,甚至吧JDK環境都整了一遍都沒有解決問題。後來發現在debug啟動時手誤在實體類裡打了個debug,導致專案啟動載入實體時停在debug處。 解決辦法:找出打debug的位置去掉debug重新啟動專案就好了。

有關Tomcat 8.5版本文件上傳後無權限訪問的問題

排除 接下來 jsb 英文 log 是不是 nts csdn details http://blog.csdn.net/myo_o1/article/details/64131124 之前在tomcat 7下文件上傳後訪問一直沒問題,現在tomcat版本升到8.5,在測試文

tomcat 8.5 優化

-a 可用 config $@ mx2 conf ott nco 限制 著重是jvm的內存大小的配置和catalina的線程數及隊列等等。JVM的優化Linux 修改 啟動文件的參數 JAVA_OPTS 如果服務器只運行一個 Tomcat8G內存的機子配置:JAVA_OPT

Linux下安裝Tomcat 8.5

1.下載Tomcat 下載連結,下載對應的Linux版本的tar.gz包到/usr/local/temp(路徑根據實際情況變化) 2.解壓Tomcat # cd /usr/local/temp # tar -zxvf apache-tomcat-8.5.35.tar.gz /

Linux中Ubuntu Server安裝 apache-tomcat-8.5.20.tar.gz 的下載步驟

1.首先進入apache tomcat的官網 http://tomcat.apache.org/ 如下介面--》 2.進入官網以後 我們可以看見Download目錄下的Archives。點選Archives(代表的是檔案庫 通常意思就是更多的選擇的意思) 進入如下介

apache-tomcat 8.5 SSL證書佈置及強制https

一、使用jdk自帶的工具生成數字證書,如下: 先進入tomcat conf目錄下,建立一個資料夾key 然後, keytool -genkey -v -alias tomcat -keyalg RSA -keystore C:\apache-tomcat-8.5.31\conf\key\

nginx + tomcat 8.5 優化配置,安裝nginx【centos6、7】

第一步安裝 軟體 1.1 依賴包 # yum -y install gcc # yum install expat-devel # sudo yum install  zlib-devel 到http://apr.apache.org/download.cgi#apr1這

How to Install Apache Tomcat 8.5 on CentOS 7.3

How to Install Apache Tomcat 8.5 on CentOS 7.3 From: https://www.howtoforge.com/tutorial/how-to-install-tomcat-on-centos/   This tutorial e

關於 tomcat 8.5.33 版本開始 CorsFilter 跨域設定的問題

 <filter>      <filter-name>CorsFilter</filter-name>      <filter-class>org.apache.catalina.filters.CorsFilter<

Tomcat 8.5 啟用 Apache Portable Runtime(APR)庫,提升效能

APR介紹 Tomcat可以使用Apache Portable Runtime(APR)來提供卓越的可擴充套件性、效能,以及更好地與本機伺服器技術整合。Apache可移植的執行時是一個高度可移植的庫,它

CENTOS 7安裝步驟apache-tomcat-8.5.34-windows-x86

1,全文可能比較詳細(就是比較瑣碎)(對新手比較友好) 全部命令在行末! 2,首先克隆一個VM虛擬機器。以下這個操作出錯率較高,防止不必要損失。建議在虛擬機器上動手操作! 選擇完整克隆: 克隆OK 3,如果忘記root密碼。我在其他部落格有寫解決方法!確保

Ubuntu-16.04.3-server安裝配置JDK-8u191、Tomcat-8.5

Ubuntu-16.04.3-server安裝配置JDK、Tomcat 準備檔案: ubuntu-16.04.3-server-amd64.iso jdk-8u191-linux-x64.tar.gz apache-tomcat-8.5.34.tar.gz pscp

tomcat報錯總結C:\Program Files\Apache Software Foundation\Tomcat 8.5\logs\catalina.2018-11-07.log (拒絕訪問)

一、錯誤問題 java.util.logging.ErrorManager: 4 java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 8.5\logs

Apache Tomcat 8.5.37 釋出,開源 Web 應用伺服器

   Apache Tomcat 是 Java Servlet、JavaServer Pages、Java 表示式語言和 Java WebSocket 技術的開源實現,是一個免費的開放原始碼的 Web 應用伺服器。 相較於 8.3.35版本,Apache Tomcat

配置mysql資料庫連線錯誤:javax.servlet.ServletException: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cann

[javax.servlet.ServletException: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL '

tomcat-8.5.16 apr 模式配置(7-8可用,9待測)

新增開啟aprvi /usr/local/tomcat8/conf/server.xml #69 預設protocol="HTTP/1.1" 修改成<Connector port="8080" protocol="org.apache.coyote.http11.Htt