1. 程式人生 > >配置tomcat8數據源(采用局部數據源方式)

配置tomcat8數據源(采用局部數據源方式)

字符串 height xhtml .com 源配置 編號 .org 系統 修改

  tomcat提供兩種數據源配置方式,全局和局部。全局的話對於所有web應用都生效,局部只對於配置的某一個web生效。

  步驟:

  1.將mysql的jdbc驅動復制到tomcat的lib路徑下。

  2.在tomcat目錄下,conf/Catalina/localhost下新建一個xml文件,例如為dd.xml。添加如下內容。

   其中docBase為web應用的文件夾。這裏有個特別要註意的地方!!!!雖然我們的web應用是aa文件夾,但是我們通過“locahost:端口號/web名稱”訪問時這裏的web名稱要寫dd而不是aa。aa是直接訪問了這個web應用,但是並沒有與數據源進行連接,也就是沒有與數據庫進行連接,因為數據庫連接的代碼在dd.xml中,所以要通過dd訪問。

   這裏在mysql數據庫中有一個名為javaee的數據庫,裏面有一個news_inf的表,表有兩個字段,第一個為編號,第二個為任意字符串。

<Context  docBase="D:/java EE/codes/01/aa" debug="0" privileged="true">
    <!-- 其中name指定數據源在容器中的JNDI名
    driverClassName指定連接數據庫的驅動
    url指定數據庫服務的URL
    username指定連接數據庫的用戶名
    password指定連接數據庫的密碼
    maxActive指定數據源最大活動連接數
    maxIdle指定數據池中最大的空閑連接數
    maxWait指定數據池中最大等待獲取連接的客戶端
    
--> <Resource name="jdbc/dstest" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/javaee" username="root" password="314159" maxActive="5" maxIdle="2" maxWait="10000"
/> </Context>

  3.訪問數據源測試

  tomcatTest.jsp

<%--
網站: <a href="http://www.crazyit.org">瘋狂Java聯盟</a>
author  yeeku.H.lee kongyeeku@163.com
version  1.0
Copyright (C), 2001-2016, yeeku.H.Lee
This program is protected by copyright laws.
Program Name:
Date: 
--%>

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@ page import="javax.naming.*,java.sql.*,javax.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>測試Tomcat數據源</title>
</head>
<body>
<%
// 初始化Context,使用InitialContext初始化Context
Context ctx=new InitialContext(); 
/*
通過JNDI查找數據源,該JNDI為java:comp/env/jdbc/dstest,分成兩個部分
java:comp/env是Tomcat固定的,Tomcat提供的JNDI綁定都必須加該前綴
jdbc/dstest是定義數據源時的數據源名
*/
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/dstest");
// 獲取數據庫連接
Connection conn=ds.getConnection();
// 獲取Statement
Statement stmt=conn.createStatement();
// 執行查詢,返回ResulteSet對象
ResultSet rs=stmt.executeQuery("select * from news_inf");
while(rs.next())
{
    out.println(rs.getString(1) 
        + "\t" + rs.getString(2) + "<br/>");
}
%>
</body>
</html>

  根據上面的紅字部分,訪問,localhost:8080/dd,即可看到tomcatTest.jsp文件,點擊即可。技術分享技術分享

總結:局部數據源無需修改系統的配置文件,如web.xml,server.xml,comtext.xml等,只需修改用戶自己的web部署文件即可,不會造成系統的混亂,而且數據源被封裝在一個web應用之內,防止被其他的web應用訪問,提供了更好的封裝性。另外特別註意訪問的web名(見上述紅字)。

  

配置tomcat8數據源(采用局部數據源方式)