Tomcat做了什么来为您提供DataSource的实现

时间:2015-05-09 08:52:46

标签: java tomcat datasource jndi

来自JNDI Resources HOW-TO

<Context ...>
  ...
  <Resource name="jdbc/EmployeeDB"
            auth="Container"
            type="javax.sql.DataSource"
            username="dbusername"
            password="dbpassword"
            driverClassName="org.hsql.jdbcDriver"
            url="jdbc:HypersonicSQL:database"
            maxActive="8"
            maxIdle="4"/>
  ...
</Context>

类型是javax.sql.DataSource,这是一个接口。

下面的代码检索DataSource的一个实例并从中获取连接。

Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)
  envCtx.lookup("jdbc/EmployeeDB");

Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();

this Stackoverflow answer开始,它说DataSource的实际实现取决于数据库供应商。

所以在这个例子中,Tomcat是否使用driverClassName="org.hsql.jdbcDriver"来返回DataSource的实现?

1 个答案:

答案 0 :(得分:4)

Tomcat实现了connection pool。此连接池具有接口DataSource的实现。此实现使用指定的驱动程序类(#EXTM3U #EXT-X-TARGETDURATION:5 #EXT-X-VERSION:7 #EXT-X-MEDIA-SEQUENCE:1 #EXT-X-PLAYLIST-TYPE:VOD #EXT-X-KEY:METHOD=AES-128,URI="./slow_loading.php?delay=5&resource=crypt0.key",IV=0xbf9840dc7d7fa163301a6c38844d6239 #EXT-X-MAP:URI="main.mp4",BYTERANGE="560@0" #EXTINF:4.96907, #EXT-X-BYTERANGE:25312@560 main.mp4 #EXTINF:4.96907, #EXT-X-BYTERANGE:25440@25872 main.mp4 #EXTINF:4.96907, #EXT-X-BYTERANGE:25440@51312 main.mp4 #EXTINF:4.96907, #EXT-X-BYTERANGE:25440@76752 main.mp4 ... )来打开与数据库的连接。