配置tomcat8数据源(采用局部数据源方式)
tomcat提供兩種數(shù)據(jù)源配置方式,全局和局部。全局的話對于所有web應(yīng)用都生效,局部只對于配置的某一個web生效。
步驟:
1.將mysql的jdbc驅(qū)動復(fù)制到tomcat的lib路徑下。
2.在tomcat目錄下,conf/Catalina/localhost下新建一個xml文件,例如為dd.xml。添加如下內(nèi)容。
其中docBase為web應(yīng)用的文件夾。這里有個特別要注意的地方!!!!雖然我們的web應(yīng)用是aa文件夾,但是我們通過“l(fā)ocahost:端口號/web名稱”訪問時這里的web名稱要寫dd而不是aa。aa是直接訪問了這個web應(yīng)用,但是并沒有與數(shù)據(jù)源進(jìn)行連接,也就是沒有與數(shù)據(jù)庫進(jìn)行連接,因為數(shù)據(jù)庫連接的代碼在dd.xml中,所以要通過dd訪問。
這里在mysql數(shù)據(jù)庫中有一個名為javaee的數(shù)據(jù)庫,里面有一個news_inf的表,表有兩個字段,第一個為編號,第二個為任意字符串。
<Context docBase="D:/java EE/codes/01/aa" debug="0" privileged="true"><!-- 其中name指定數(shù)據(jù)源在容器中的JNDI名driverClassName指定連接數(shù)據(jù)庫的驅(qū)動url指定數(shù)據(jù)庫服務(wù)的URLusername指定連接數(shù)據(jù)庫的用戶名password指定連接數(shù)據(jù)庫的密碼maxActive指定數(shù)據(jù)源最大活動連接數(shù)maxIdle指定數(shù)據(jù)池中最大的空閑連接數(shù)maxWait指定數(shù)據(jù)池中最大等待獲取連接的客戶端--><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.訪問數(shù)據(jù)源測試
tomcatTest.jsp
<%-- 網(wǎng)站: <a href="http://www.crazyit.org">瘋狂Java聯(lián)盟</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數(shù)據(jù)源</title> </head> <body> <% // 初始化Context,使用InitialContext初始化Context Context ctx=new InitialContext(); /* 通過JNDI查找數(shù)據(jù)源,該JNDI為java:comp/env/jdbc/dstest,分成兩個部分 java:comp/env是Tomcat固定的,Tomcat提供的JNDI綁定都必須加該前綴 jdbc/dstest是定義數(shù)據(jù)源時的數(shù)據(jù)源名 */ DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/dstest"); // 獲取數(shù)據(jù)庫連接 Connection conn=ds.getConnection(); // 獲取Statement Statement stmt=conn.createStatement(); // 執(zhí)行查詢,返回ResulteSet對象 ResultSet rs=stmt.executeQuery("select * from news_inf"); while(rs.next()) {out.println(rs.getString(1) + "\t" + rs.getString(2) + "<br/>"); } %> </body> </html>根據(jù)上面的紅字部分,訪問,localhost:8080/dd,即可看到tomcatTest.jsp文件,點(diǎn)擊即可。
?
總結(jié):局部數(shù)據(jù)源無需修改系統(tǒng)的配置文件,如web.xml,server.xml,comtext.xml等,只需修改用戶自己的web部署文件即可,不會造成系統(tǒng)的混亂,而且數(shù)據(jù)源被封裝在一個web應(yīng)用之內(nèi),防止被其他的web應(yīng)用訪問,提供了更好的封裝性。另外特別注意訪問的web名(見上述紅字)。
?
轉(zhuǎn)載于:https://www.cnblogs.com/GoForMyDream/p/7692659.html
總結(jié)
以上是生活随笔為你收集整理的配置tomcat8数据源(采用局部数据源方式)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【BZOJ 4057 Kingdoms】
- 下一篇: JS中的!= 、== 、!==、===的