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

标签:数据库,连接池
0
投稿

猜你喜欢

  • vue实现登录界面

    2024-05-02 16:53:56
  • tensorflow训练中出现nan问题的解决

    2023-02-10 09:34:09
  • 利用OpenCV+Tensorflow实现的手势识别

    2022-04-03 02:12:33
  • 简单文件操作python 修改文件指定行的方法

    2022-07-13 15:02:52
  • css被遮挡的绝对定位

    2008-02-29 12:00:00
  • vue实现excel表格的导入导出的示例

    2024-05-10 14:10:22
  • oracle SQL解析步骤小结

    2009-09-30 10:46:00
  • PHP+MYSQL不恶补十句话

    2009-12-02 10:09:00
  • Python最长公共子串算法实例

    2022-08-11 01:29:57
  • python枚举类型定义与使用讲解

    2021-04-11 08:55:42
  • 基于python实现的抓取腾讯视频所有电影的爬虫

    2023-02-20 22:01:39
  • SQL Server中实现二进制与字符类型之间的数据转换

    2023-07-17 21:34:47
  • Python基础常用内建函数图文示例解析

    2022-05-04 04:54:24
  • Python使用pandas导入csv文件内容的示例代码

    2022-07-25 15:34:16
  • Python对象的生命周期源码学习

    2022-04-04 23:21:24
  • Git Bash终端默认路径的设置查看修改及拓展图文详解

    2023-08-22 02:03:40
  • 基于MATLAB和Python实现MFCC特征参数提取

    2023-01-29 07:37:53
  • 在Django框架中设置语言偏好的教程

    2022-01-18 22:47:35
  • 关于SQL嵌套的误解分析

    2024-01-22 22:01:03
  • Python多线程以及多线程中join()的使用方法示例

    2021-02-07 16:25:03
  • asp之家 网络编程 m.aspxhome.com