java配置数据库连接池的方法步骤
发布时间:2024-01-17 21:00:32
先来了解下什么是数据库连接池
数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接,这样,通过复用这些已经建立的数据库连接,可以克服上述缺点,极大地节省系统资源和时间。
在实际应用开发中,特别是在WEB应用系统中,如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接、打开数据库、存取数据和关闭数据库连接等步骤,而连接并打开数据库是一件既消耗资源又费时的工作,如果频繁发生这种数据库操作,系统的性能必然会急剧下降,甚至会导致系统崩溃。数据库连接池技术是解决这个问题最常用的方法,在许多应用程序服务器(例如:Weblogic,WebSphere,JBoss)中,基本都提供了这项技术,无需自己编程,但是,深入了解这项技术是非常必要的。
数据库连接池的主要操作如下:
(1)建立数据库连接池对象(服务器启动)。
(2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。
(3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。
(4)存取数据库。
(5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。
(6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。
配置步骤:
1.在Tomcat conf/content.xml中<Context>节点内添加如下内容
<Resource name="jdbc/news" auth="Container"type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sa" password="120010" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;DatabaseName=news"/>
name:之后我们要调用resource时候用到
type:是链接数据库时候用到的java扩展包下的类
maxActive:最大连接数
maxIdle:是空闲时候最大连接数
maxwait:空闲判断标准
注意:
1.该配置文件里不允许有中文;各个属性间的用一个空格隔开
2.要将对应链接数据库的jar包放到tomcat /lib文件夹中工程中就不需要存放了
下面还中是链接oracle的
<Resource type="javax.sql.DataSource" name="jdbc/news" url="jdbc:oracle:thin:@192.168.2.102:1521:orcl" driverClassName="oracle.jdbc.driver.OracleDriver" password="bg" username="test" maxWait="10000" maxIdle="30" maxActive="100" auth="Container"/>
2.在工程的web.xml中添加如下代码
<resource-ref>
<res-ref-name>jdbc/news</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
这里<res-ref-name>标签里面的名字就是在content.xml文件中的name的名字
3.得到数据库连接池中的Connection对象
Context context=new InitialContext();
DataSourceds=(DataSource)context.lookup("java:comp/env/jdbc/news");
Connectionconn = ds.getConnection();
context是javax.namingx下的类
dataSource是javax.sql下的类
"java:comp/env/jdbc/news"中:java:comp/env是固定写法 jdbc/news是jndi名称(Tomcat中配置的那个name)
如果我们不是在web.xml中配置数据源,我们用spring来控制数据库链接方法步骤:
1.在配置文件中添加如下节点
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/news"/>
</bean>
配置好了获取sql语句查询数据有多少条:
调用的时候直接Dao类继承JdbcDaoSupport类(spring.jar中的类)
int count = this.getJdbcTemplate().queryForInt("select * from users");
这样我们就搞定了!当然也许还有很多方法可以配置,我只列出上面几种,要是有什么问题可以私密我我很乐意与大家一起讨论!
----ydcun


猜你喜欢
- 每次装完系统之后都要重新安装一些软件,安装软件的时候又要上网查找安装的教程,比较麻烦,所以就自己整理了mysql-8.0.15-winx64
- DJANGO-ALLAUTH是github上面排名较高的django user系统.本来通过对比是想选用django-userea的,可是博
- 自己用python写了一个签到脚本,经过测试已经可以成功打卡,于是研究了一下windows定时运行程序1. 创建定时任务1.1 计划任务打开
- 如果需要在数据库中存储图片或视频类的数据,我们可以配置MEDIA.下面的示例将以上传一张图片的形式来说明MEDIA的配置及用法.第一步 se
- 本文实例讲述了Python基于dom操作xml数据的方法。分享给大家供大家参考,具体如下:1、xml的内容为del.xml,如下<?x
- 背景:作为一个python小白,今天从菜鸟教程上看了一些python的教程,看到了python的一些语法,对比起来(有其他语言功底),感觉还
- 按需导入:安装插件首先需要引入额外的插件:前**vite-plugin-components已重命名为unplugin-vue-compon
- 代码如下:< % '功能:显示数据库中表名、字段名、字段内容 '原创:wangsdong
- 自定义指令中无法获取this问题最近在使用自定义指令时遇到一个问题,我想在指令里通过this直接去访问vue实例数据,但是显示未定义,经大佬
- 其实网上有很多关于python2.6.6 升级到python2.7的文章,但是我对比这些类似的文章升级之后,发现其中有错误的地方,于是决定还
- 今天碰到这个极度郁闷的报错,搞了大半下午,才发现是ie的问题,忍不住大骂。例子是这样的:页面中有多处能出发菜单,并且菜单出现在触发点的旁边,
- 一:分组函数的语句顺序 1 SELECT ... 2 FROM ...
- 一、需求 + 最终实现注:只是前端实现1. 需求需求来源是因为有一个做嵌入式 C/C++的 * 做了一个远程计算器。 需求是要求支持输入一个四
- 本文实例为大家分享了Vue实现聊天界面展示的具体代码,供大家参考,具体内容如下1.功能需求根据索引选择跟不同的人进行聊天2.代码展示mock
- 一个动态数组 a,如果你已经使用redim 语句给它设定了大小,那么在此之后使用 ubound(a) 就可以得到它的上边界。如果你没有使用
- --查看当前数据库状态 1为已经启用了全文索引 SELECT DATABASEPROPERTY ('数据库名','I
- 如下所示:#coding utf-8a=0.001 #定义收敛步长xd=1 #定义寻找步
- 之所以说”使用”而不是”实现”,是因为python的相关类库已经帮我们实现了具体算法,而我们只要学会使用就可以了。随着对技术的逐渐掌握及积累
- 在网上查了部分资料但是发现粘上去的代码都存在问题,无奈只好自己修改了一下,代码如下: 如下代码能正常运行,都是网上查找资料最后拼凑总结出来的
- 1.保存变量先创建(在tf.Session()之前)saversaver = tf.train.Saver(tf.global_variab