DBCP資料來源與應用伺服器整合使用—— 配置Tomcat資料來源
檢視Tomcat文件(Tomcat-->TomcatDocument-->JNDI Resources-->定位到JDBC Data Sources),示例程式碼:
<Resource name="jdbc/datasource" auth="Container" type="javax.sql.DataSource" username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jdbc" maxActive="8" maxIdle="4" />
<Resource name="jdbc/EmployeeDB " auth="Container" type="javax.sql.DataSource"
username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jdbc" maxActive="8" maxIdle="4" />
</Context>
複製程式碼
放置位置:在MyEclipse中,在目錄/META-INF/下建立檔案context.xml,將上述內容貼上其中(注:不要寫XML檔案的指令頭句)。該檔案將被髮布到Tomcat伺服器的conf\Catalina\localhost目錄中,並以工程名稱 命名該檔案。
下面是呼叫JNDI,獲取儲存在JNDI容器中的資源的固定格式程式碼
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
dataSource = (DataSource)envCtx.lookup("jdbc/datasource");
複製程式碼
特別提醒:此種配置下,驅動jar檔案需放置在tomcat的lib下 可以建立工具類JDBCUtils,java來封裝上面獲取連線的程式碼。 Demo樣例: 封裝JNDI呼叫DataSource 獲取連線的程式碼。 複製程式碼
public class JdbcUtils_Tomcat {
private static DataSource ds;
static {
try {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource) envCtx.lookup("jdbc/EmployeeDB");
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static Connection getConnection() throws SQLException{
return ds.getConnection();
}
}
複製程式碼