今天天氣已經(jīng)轉涼了呀!
明天開始要早點6.30分起床了!不然時間不夠了。
今天講的書Tomcat數(shù)據(jù)源。
傳統(tǒng)的JDBC操作分為四種:
1.加載去數(shù)據(jù)庫的驅動程序(通過classpath映射找到驅動)
2.通過DriverManage類取得連接對象(Connection)
3.通過鏈接取得PreparedStatement對象,編寫sql操作語句,進行crud操作。
4.數(shù)據(jù)庫操作是屬于資源操作,運行完成以后要關閉自愿。
今天學習的是在tomcat前提下配置的數(shù)據(jù)源,既然是在tomcat那么必然要對tomcat進行配置:
首先還是要先來解釋下JNDI這個名詞。
命名與目錄借口。
1.拷貝數(shù)據(jù)庫驅動程序到tomcat/comman/lib目錄下。
2.修改Tomcat的server.xml文件。
<context·····>
<Resource name = "jdbc/mldn" -->>設置一個匹配名字,在項目web.xml中要設置用到。
auth = "Container" -->>這個一聽是連接池的設置屬性吧。(有Container 和Application兩個屬性,一般都選用Container)
type = "javax.sql.Datasource" -->>所有的鏈接池里面的鏈接都要用Datasource獲得,所以一定要讓鏈接指向這個庫。
maxActive = "100" -->>設置最大鏈接數(shù)
minIdle = "10" -->>設置最小保存在鏈接池里面的鏈接數(shù)。
maxWait = "10000" -->>最大等待時間,如果再等待時間內有鏈接空閑的話就可以繼續(xù)取得連接,但是如果超過這個時間的話將對數(shù)據(jù)庫的操作失 敗。這個是毫秒數(shù),這個數(shù)表示為10S
username = "root" --->>鏈接的數(shù)據(jù)庫的用戶名。
password = "root123" -->>數(shù)據(jù)庫用戶的密碼。
DriverClassName = "" -->>驅動程序
url = "" -->>數(shù)據(jù)庫的地址
>
</Resource>
</context>
3.修改項目中的web.xml -->>這個設置的主要目的是要讓他讀取到Tomcat中<resource>屬性中的值。
<resource-ref>
<description>DB DRIVER</description> -->>這個僅僅是描述,可以在程序中取得,現(xiàn)在還體現(xiàn)不到他又什么用。
<res-ref-name>jdbc/mldn</res-ref-name> -->>這個名字跟Tomcat中<resource>屬性中的name匹配的。通過這個名字找到Tomcat中的配置。
<res-type>javax.sql.Datasource</res-type> -->>跟Tomcat中<resource>屬性中的type匹配的。
<res-auth>Container</res-auth> -->>跟Tomcat中<resource>屬性中的auth匹配的.
<resource -ref>
4.在項目中具體的讀取方式:(取的Connection pool中的鏈接)
A.初始化名稱,查找上下文。
B.通過名稱(JNDI)查找Datasource
C.通過Datasource取得鏈接。
eg:
String jndi = "java:comp/env/jdbc/mldn"
Context ctx = InitialContext();
Datasource ds = (Datasource) ctx.lookUp(jndi);
Connection conn = ds.getConnection();
java:comp/env/這個是javaee規(guī)范特定的在Tomcat中沒有實現(xiàn),其他服務器的話都已經(jīng)實現(xiàn),換句話說,其他地方只要用server中的name屬性即可。