【解決】 在JSP 透過JNDI查找,取得javax.sql.DataSource物件來和資料庫連線

常見問題

【設定data source】
<data-source id="apDSXX" class="com.aaa.bbbb.JndiDataSource" type="mssql" loadOnStart="false">
	<property name="jndi-name" value="XXXPool"/>
        <property name="underlying-connection" value="true"/>
</data-source>  
【建立jsp 】

在jsp裡寫java,透過JNDI查找,取得javax.sql.DataSource物件來和資料庫連線

<%@ page import ="java.io.*" %>
<%@ page import  ="java.util.*" %>
<%@ page import  ="javax.naming.Context" %>
<%@ page import  ="javax.naming.InitialContext" %>
<%@ page import  ="javax.naming.NamingException" %>
<%@ page import  ="javax.sql.DataSource" %>
<%@ page import  ="java.util.Properties" %>
<%@ page import  ="java.sql.*" %>


<%

ResultSet rs =null;

try{

    Context env = (Context) new InitialContext().lookup("java:comp/env");

    DataSource dsptm = (DataSource)env.lookup("XXXPool");
    Connection conn = dsptm.getConnection();
    Statement stmt = conn.createStatement();
    stmt.executeQuery("select GETDATE()"); //取得連線DB的時間

    StringBuffer sb=new StringBuffer("XXXPool Now is: ");

    rs = stmt.getResultSet();

      if(rs.next()){ 
	   sb.append(rs.getString(1)+" , XXXPool success!");
      }

	   if(rs != null){
		rs.close();
		rs =null;
          }	   
	   if(stmt!=null){
	       stmt.close();
	       stmt =null;
          }
	   if(conn!=null){
	       conn.close();
	       conn =null;
           }
	   
	   response.getWriter().println(sb.toString());  //印在畫面上

}catch (Exception e) {
	e.printStackTrace();
}

%>

Related Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js