package common; import java.sql.Connection; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; /** * 通過JNDI擷取資料來源 * @author 周尚武 * 時間:2008年12月8日22:37:09 */ public class DBConnection { /** * 通過JNDI擷取資料來源在擷取連線物件 * @return Connection con */ public static Connection getCon(){ Connection con = null; try { Context ic = new InitialContext(); DataSource source = (DataSource)ic.lookup("java:comp/env/jdbc/books"); con = source.getConnection(); } catch (NamingException e) { System.out.println("資料來源沒找到。"); e.printStackTrace(); } catch (SQLException e) { System.out.println("擷取數連線物件失敗。"); e.printStackTrace(); } return con; } }
JNDI的配置:
1.context.xml檔案的配置: <Resource name="jdbc/books" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sa" password="123" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;databasename=books"/>
2.web.xml檔案的配置: <resource-ref> <res-ref-name> jdbc/books </res-ref-name> <res-type> javax.sql.DataSource </res-type> <res-auth> Container </res-auth> </resource-ref>
3.添加資料庫驅動檔案:
通過資料來源訪問資料庫,由於資料來源由Tomcat 維護,所有必須把JDBC驅動程式複製到Tomcat的common/lib目錄下。
注意:如果要是用的MyEclipce內建的Tomcat可以從Configure中
選中paths-----》在點擊Add JAR/ZIP-----》載入相應的JDBC驅動