基本上以前撰寫Java連接資料庫都是透過DriverManager,並且將相關的帳號、密碼等資訊預
先寫在一properties的設定檔內,如此一來方便管理設定。後來得知,tomcat的server.xml下也
可以設定一Context的Resource,將連接資料庫的設定寫在resource內,如此一來當tomcat啟用
時,相關的servlet程式可以取得連接資料庫的資源!
一、DriverManager
透過DriverManager.getConnection取得Connection object,如此一來您就可以進行相關的查詢
動作。這可以應用在單一執行JAVA程式上可以用到,或者是透過tomcat下各專案的web.xml
設定當一啟用tomcat,相關的servlet也可以直接取得Connection!
DB_URL => jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Homework
DB_USER => sa
DB_PASS => gba123
DB_DRIVER => com.microsoft.sqlserver.jdbc.SQLServerDriver
二、DataSource
若透過JNDI取得一datasource,可預先在server.xml下設定好一resource
在此撰寫一tomcat啟用後,執行一servlet的init method
在此,可以取得一DataSource object,如此也可以取得一Connection
PS. 這種方式需在tomcat執行的情況下方可以使用,單一JAVA程式無法
另,JSP頁面的sql tag也可以設定一DataSource,可以透過指定的DataSource或當下設定一
DataSource取得連接資料庫的資源。
當下建立一DataSource
<sql:setDataSource var='conn' driver='<%=driver %>' user='<%=dbuser %>' password='<%=dbpswd %>' url='<%=dburl %>' scope='page' />
已建立的DataSource來進行相關query,這個DataSource從後端的JNDI建立,透過前端的
<jsp:useBean id="user" class="com.UserInfo" scope="session"/>取得已set的DataSource資源
<sql:query var='data' dataSource='${user.default_ds}'></sql:query>
tomcat官方說明JNDI
https://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html
先寫在一properties的設定檔內,如此一來方便管理設定。後來得知,tomcat的server.xml下也
可以設定一Context的Resource,將連接資料庫的設定寫在resource內,如此一來當tomcat啟用
時,相關的servlet程式可以取得連接資料庫的資源!
一、DriverManager
Connection conn = null;
Class.forName(DB_DRIVER);
conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
System.out.println("Connection created!");
透過DriverManager.getConnection取得Connection object,如此一來您就可以進行相關的查詢
動作。這可以應用在單一執行JAVA程式上可以用到,或者是透過tomcat下各專案的web.xml
設定當一啟用tomcat,相關的servlet也可以直接取得Connection!
DB_URL => jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Homework
DB_USER => sa
DB_PASS => gba123
DB_DRIVER => com.microsoft.sqlserver.jdbc.SQLServerDriver
二、DataSource
若透過JNDI取得一datasource,可預先在server.xml下設定好一resource
在此撰寫一tomcat啟用後,執行一servlet的init method
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
// Look up our data source
DataSource ds = (DataSource)envCtx.lookup("jdbc/ExampleDemo");
// Allocate and use a connection from the pool
conn = ds.getConnection();
//... use this connection to access the database ...
System.out.println("initialize datasource..."+conn);
}catch(Exception e){
e.printStackTrace();
}
在此,可以取得一DataSource object,如此也可以取得一Connection
PS. 這種方式需在tomcat執行的情況下方可以使用,單一JAVA程式無法
另,JSP頁面的sql tag也可以設定一DataSource,可以透過指定的DataSource或當下設定一
DataSource取得連接資料庫的資源。
當下建立一DataSource
<sql:setDataSource var='conn' driver='<%=driver %>' user='<%=dbuser %>' password='<%=dbpswd %>' url='<%=dburl %>' scope='page' />
已建立的DataSource來進行相關query,這個DataSource從後端的JNDI建立,透過前端的
<jsp:useBean id="user" class="com.UserInfo" scope="session"/>取得已set的DataSource資源
<sql:query var='data' dataSource='${user.default_ds}'></sql:query>
tomcat官方說明JNDI
https://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html
留言
張貼留言