JNDI配置步驟:
1.JNDI是 java naming and directory interface 作用是用來完成從伺服器(tomcat)中查詢資料源,與以往的JDBC的使用不太相同,但是JNDI的作用恰恰幫我們完成了JDBC的獲得Connection對象的步驟。
2.JDBC獲得是一個連接配接對象,但是JNDI是幫我們獲得一個資料池,資料池中有多個連接配接,我們可以任意獲得一個連接配接,是以JNDI在完成資料庫連接配接時能夠提供資料庫連接配接一個限定等配置!!
具體步驟如下:
1.配置伺服器(tomcat)的conf/context.xml檔案
添加如下節點:
<Resource
name="jdbc/books" 資料源名稱
auth="Container" 資料源由伺服器建立
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="test"
password="123456"
dirverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;databasename=資料庫名字"
/>
2.添加JAR包到tomcat安裝目錄下的lib檔案夾下
3.配置web.xml檔案
<resource-ref>
<res-ref-name>jdbc/books</res-ref-name> 這個值是要和conf/context.xml檔案中name屬性值相同
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
通過以上幾步的配置基本完成。
剩下就是測試代碼:
try {
Context ctx = new InitialContext();
//此處要添加的是查找資料源的名字 但是要加字首java:comp/env
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/books");
Connection conn = ds.getConnection(); //通過資料源獲得資料源中的連接配接
String sql = "select * from person";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
System.out.println(rs.getString(1));
}
} catch (Exception e) {
e.printStackTrace();
}
注意:以上測試代碼需要寫在servlet中,因為資料源對象是在伺服器(tomcat)中加載建立的,是以啟動tomcat後會自動建立dataSource對象