• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

数据源和连接池

mysql 搞代码 4年前 (2022-01-09) 16次浏览 已收录 0个评论

数据源是用来连接数据库,获得Connection对象的,在java中使用javax.sql.DataSource接口来表示。 有了数据源,我们就不需要在编写其他连接数据库代码,直接从数据源中获取连接就可以了,而且,不管使用什么样的数据库,都是用一样的方式获取数据库连接对象。

数据源是用来连接数据库,获得Connection对象的,在java中使用javax.sql.DataSource接口来表示。

有了数据源,我们就不需要在编写其他连接数据库代码,直接从数据源中获取连接就可以了,而且,不管使用什么样的数据库,都是用一样的方式获取数据库连接对象。

数据源对象一般由容器创建的,在程序中可以使用JNDI来获取。通过数据源创建的连接对象可以被自动的放入连接池统一管理。

连接池是用来管理Connection对象的,连接池可以从数据源中获取连接,连接池中可以有若干个数据库连接对象,这些连接对象可以被重用。应用程序需要连接时就向连接池申请,如果连接池有空闲的连接,就会分配给应用程序,如果没有,可能需要在等待队列里等待。而如果从连接池中获得一个连接对象,等到使用完毕后,通过调用Connection的close()方法,就能将连接还给连接池,这样这个连接对象就又编程空闲的了,可以等待下一次连接请求。而连接池中的连接对象将一直保持与数据库的连接,这样就避免了频繁的连接盒关闭。但是这些连接对象会占用一定的内存空间,所以我们要根据数据库的并发访问量,和服务器的硬件条件来觉得连接池中的最大连接数。

数据源和连接池一个是用来创建连接对象的,一个是用来管理连接对象的。

在Tomcat中使用数据源可以使用如下步骤:

1、在Tomcat中加入数据库驱动文件,在Tomcat的lib目录下导入数据库驱动包。

2、配置Tomcat的conf/context.xml文件,在该文件中加入如下代码:

	

name:指定Resource的JNDI名称。auth:指定管理Resource的Manager(Container:由容器创建和管理,Application:由WEB应用创建和管理)。type:指定Resource所属的java类。maxActive指定连接池中处于活动状态的数据库连接的最大数目。maxIdle:指定连接池中处于空闲状态的数据库连接的最大数目。maxWait:指定连接池中处于空闲的最长时间,超过这个时间会抛出异常,取值为-1表示无限期等待。

3、使用JNDI获取连接对象。

import java.sql.Connection;import java.sql.SQLException;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.Nam<strong style="color:transparent">来2源gaodaima#com搞(代@码&网</strong>ingException;import javax.sql.DataSource;public class JNDIConnection {	public Connection JNDIgetConnection() {		Connection conn = null;		Context ic;		try {			ic = new InitialContext();			DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/books");			conn = ds.getConnection();		} catch (NamingException e) {			e.printStackTrace();		} catch (SQLException e) {			e.printStackTrace();		}		return conn;	}}

这时我们就可以使用连接对象,并且对数据库进行一系列操作。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:数据源和连接池

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址