谁能告诉我数据库连接池原理,什么是通过JDBC直接连接,什么是通过连接池连接.我们项目中一般是下边的方式连接,算是什么方式连接,谢谢.
try {
// データソースを取得する
InitialContext ic = new InitialContext();
ds = (DataSource) ic.lookup("java:/aivi"); //クネクションを取得する
conn = ds.getConnection(); // AutoCommitを無効
conn.setAutoCommit(false); //conn.setHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT); } catch (Exception e) {
throw new DBConnectException(e.getMessage());
}
try {
// データソースを取得する
InitialContext ic = new InitialContext();
ds = (DataSource) ic.lookup("java:/aivi"); //クネクションを取得する
conn = ds.getConnection(); // AutoCommitを無効
conn.setAutoCommit(false); //conn.setHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT); } catch (Exception e) {
throw new DBConnectException(e.getMessage());
}
无非是JNDI指定一个数据源,然后找到就行了。所谓链接池,就是一堆Conn对象在里面而已,feel free。
没有啥的,。
仅此而已。
// データソースを取得する
InitialContext ic = new InitialContext();
ds = (DataSource) ic.lookup("java:/aivi"); //クネクションを取得する
conn = ds.getConnection();
这样的方式连接数据库,在TOMCAT,JBOSS配置好就行了,至少有5个项目都这样做的,做日本的项目,DATABASE是ORACLE,
楼上的兄弟,我的MSN:[email protected]
关键是你做过很多项目都是在J2EE Server的基础上做的。我没有怎么做过,
但是我实现过TOMCAT的原型,对J2EE的规范,JNI,JNDI,RMI等等有一些了解而已,所以你不知道原理什么的,但是我基本不会写JSP呢。
首先你要了解数据库连接是一种非常宝贵的资源,之所以说其宝贵是因为直接和数据库进行一次连接代价是非常大的,虽然小规模程序给人的感觉也是很快,但访问量增加后就会体现出来了.
为了不至于每次存取数据库都与数据库直接建立连接就产生了数据库连接池的概念:把连接当作一个一个的资源来看待,在这个"池子"里放很多已经产生好的连接,使用的时候直接从"池子"里拿而不是真正与数据库进行连接(拿出来的这个连接已经是可用的),用完了放回池子而不是真正关闭与数据库的连接,这个池子除了做为容器外还根据需求量的变化控制池子里连接的数目以保证连接足够使用且不浪费.
我知道的连接池有两种实现方式:一个就是你给的例子中的JNDI,如果你学过RMI就能理解的更好一些,就是服务器提供了一些资源,你通过域名得到这个资源来使用,而这个资源就是数据库连接池
第二种方式就是按我上面说的原理自己写一个数据库连接池进行连接的管理,现在已经有好多现成的了