查看Tomcat文檔(Tomcat-->TomcatDocument-->JNDI Resources-->定位到JDBC Data Sources),示例代碼:java
<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目錄中,並以工程名稱 命名該文件。mysql
下面是調用JNDI,獲取存儲在JNDI容器中的資源的固定格式代碼git
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 獲取鏈接的代碼。 複製代碼github
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();
}
}
複製代碼