数据源与连接池
来源:互联网 发布:淘宝明通数码科技公司 编辑:程序博客网 时间:2024/06/07 05:28
- 连接池和连接源
连接池提供了一种连接时资源被消耗的解决方案,通过数据源来获得连接池中的一个连接。应用程序启动的时候,连接池建立足够的数据库连接,并将这些连接组成一个连接池,由应用程序动态的对池中的连接进行申请、使用和释放。如果并发请求的连接数大于连接池中的连接,那么该请求将在请求队列中排队等待。另外,应用程序可以根据池中连接的使用率,动态增加或者减少池中的连接数。
连接池技术尽可能的重用消耗内存的资源,大大节省了内存,提高了服务器的服务效率,能够支持更多的客户服务。同时,可以通过其自身的管理机制,来监视数据库连接的数量和使用情况。
DataSource接口代表了数据源,可以通过这个接口来获得连接池中的一个连接,一般由数据库驱动程序厂商实现。
- 简单实例
1.在WEB-INF的同级目录META-INF文件夹下配置context.xml
<?xml version="1.0" encoding="UTF-8"?><Context><!-- Resource定义数据源 ※name 数据源的名字auth 由容器创建和管理Resource※type 数据源类型※ username 数据库用户名称※ password 数据块用户密码 maxIdle 最大数据库空闲连接数量 maxActive 数据库最大活跃连接数量 maxWait 数据库最大等待连接数量※ driverClassName 数据库连接驱动类名※ url 数据库连接的URL地址--><Resource name = "jdbc/DbPool" auth = "Container"type = "javax.sql.DataSource"username = "root"password = "123456"maxIdle = "30"maxActive = "100"maxWait = "5000"driverClassName = "com.mysql.jdbc.Driver"url = "jdbc:mysql://localhost:3306/user"/></Context>
2.建立DbPool.java,并在该类中访问数据源,实现对数据库的连接
package org;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import javax.naming.Context;import javax.naming.InitialContext;import javax.sql.DataSource;public class DbPool {private Connection conn;public void createConn() {//定义连接数据源的方法try {//初始化ContextContext initCtx = new InitialContext();Context envCtx = (Context) initCtx.lookup("java:comp/env");//获得数据源DataSource ds = (DataSource) envCtx.lookup("jdbc/DbPool");//获得连接对象conn = ds.getConnection();System.out.println("SUCCESS");} catch (Exception e) {e.printStackTrace();System.out.println("ERROR");}}public ResultSet executeQuery(String sql) {ResultSet rs = null;if (conn == null) {createConn();}try {PreparedStatement pst = this.conn.prepareStatement(sql);rs = pst.executeQuery();} catch (Exception e) {e.printStackTrace();}return rs;}}
3.建立dbPool.sp
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="GB2312"%><%@ page import="org.DbPool" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>使用数据源</title> </head> <body > <jsp:include page="index.html"></jsp:include> <% DbPool dbp = new DbPool(); String sql = "select * from person"; ResultSet rs = dbp.executeQuery(sql); while(rs.next()){ out.print(rs.getInt(1)); out.print(" "); out.print(rs.getString(2)); out.print(" "); out.print(rs.getInt(3)); out.print(" "); out.print(rs.getString(4)); out.print("<br/>"); } %> </body></html>
0 0
- 数据源与连接池
- 数据源与连接池
- 数据源与连接池
- 数据源与连接池
- JAVA数据源与连接池
- 数据源与连接池关系
- Mybatis数据源与连接池
- Mybatis数据源与连接池
- Mybatis数据源与连接池
- 数据源与连接池技术
- Mybatis数据源与连接池
- 数据源与连接池关系
- 我理解的数据源与连接池
- java tomcat 数据源与连接池
- JDBC连接池与数据源学习总结
- weblogic8 配置连接池与数据源
- Tomcat端口/虚拟目录/数据源与连接池
- tomcat配置数据源与连接池
- Hadoop数据操作系统中YARN全解析
- BASE64编码简介
- 浅析Javascript 中的 this 的七种使用场景
- 选择排序
- iOS开发多线NSThread(三)
- 数据源与连接池
- (0032) iOS 开发之Block 的基础用法及注意事项1
- Android ImageView的scaleType属性
- Swift3.0选择排序
- Fragment系列(二)
- css- : first-letter
- 插入排序
- 深度学习笔记(4)——Sigmoid和Relu激活函数的对比
- IP承载网基础知识