数据库的数据源(连接池)
来源:互联网 发布:do it just do it视频 编辑:程序博客网 时间:2024/06/06 21:39
一、在JDBC编程中,每操作一次数据库都出经过:Connection、创建Statement对象、获取ResultSet、销毁ResultSet、销毁Statement、断开Connection也就是说每一次操作数据库,都会创建连接、断开连接。在实际开发中为了避免频繁的创建、断开数据库的连接,提出了数据源(Data Source),也称为连接池(DBCP,Database Connection Pool),这样在操作数据库时,程序并不是直接创建Connection,而是向连接池“申请”一个Connection,如果连接池中有空闲的Connection,则返回该Connection,否则创建新的Connection,使用完毕以后,Servlet会释放该Connection,这时连接池会将该Connection回收,并交给其他线程使用,可以达到减少创建、断开连接的次数。
二、数据源一般实现自javax.sql.DataSource接口,Spring、Struts、Hibernate等框架都有自己的数据源实现。Tomcat中也内置 了数据源的支持。
三、Tomcat实现数据源的步骤:
1、找到tomcat/conf/context.xml文件加入如下配置:
<Context cookies="true"><Resource name="jdbc/databaseWeb" author="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="username" password="password" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/databaseWeb?characterEncoding=utf-8" /></Context>
其中:databaseWeb指的是数据库名,username,password分别表示用户名、密码
2、在工程的web.xml文件中添加如下代码:
<resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/databaseWeb<res-ref-name> <res-type>javax.sql.DataSource<res-type> <res-auth>Container<res-auth></resource-ref>
3、使用方法
//获取所有的资源Contect initContext=new InitialContext();Context envContext =(Context) initContext.lookup("java:/comp/env");DataSource ds=(DataSource)envContext.lookup("jdbc/databaseWeb");//获取JNDI数据源Connection conn=ds.getConnection();
0 0
- 数据库的数据源(连接池)
- 数据源(连接池)
- oracle数据源的配置和通过数据源方式连接数据库
- 【数据库学习笔记】(4)JDBC数据源和连接池
- 【Spring】使用数据源连接池访问数据库
- 数据库数据源(连接池)常见配置项
- 数据源连接数据库
- c3p0数据源连接数据库
- Spring数据库数据源JDBC连接池连接MySQL的超时问题
- Struts通过数据源连接数据库
- 配置Tomcat数据源连接数据库
- C3P0数据源 连接Access数据库
- Java连接数据库+建立数据源
- Spring连接各种数据库数据源
- 配置Tomcat的连接池和数据源(以oracle数据库为例)
- 5张图让你彻底理清数据库 ,数据源和连接池的关系
- 研究Tomcat的结构,彻底解决数据源连接数据库
- weka访问db2数据库数据源的连接问题
- Codeforces Round #277 (Div. 2) E. LIS of Sequence
- crontab使用
- pp6.7/starsb
- Ubuntu 14.04安装配置JDK+Eclipse+Tomcat
- Interview Q&A - 有十二个乒乓球形状、大小相同,其中只有一个重量与其它十一个不同,现在要求用一部没有砝码的天秤称三次,将那个重量异常的球找出来,并且要得出它比其它十一个球较重还是较轻
- 数据库的数据源(连接池)
- Android LayoutInflater详解
- HDU—— 1267 下沙的沙子有几粒?
- 解决"LNK1201:写入程序数据库 ‘.pdb’时出错"问题
- 鸟哥Linux私房菜学习(一)
- Android 基于Http协议的文件上传
- 使用控件时提示"未声明标识符"的解决方法
- sgu130:Circle
- 上海这边的租房行情(浦东/张江)