什么是数据库连接池?

配置连接池为的是解决效率问题.由于每创建一个连接都是非常耗时的,有了连接池,就能够提前放一些连接进去.以后我们再用连接就去连接池里面取而不是每次都创建.可是我们知道连接池是有上限的,假设仅仅同意我们放10个,那么当这10个连接都被占用的时候,下一个用户再来请求连接将不能得到,仅仅好等待,假设等的时间太长了就会抛出timeout的异常.使用完连接后要释放,否则会一直占着资源,当连接所有被占用而得不到释放时,就会出现错误...

JBoss实现了J2EE的13个规范包含JNDI,JNDI採用树形结构管理我们的对象,tomcat和JBoss等server对JNDI做了实现,实现它之后能够管理对象.

採用JNDI能够使我们的应用和实际实现解耦,如,我们的应用中仅仅管从连接池中取连接,而不用管使用的是哪个连接池实现,连接池的实现对我们是透明的.也就是说,我们使用连接池时,根本没有写dbcp(dbcp实现了DataSource接口),我们也不知道它是dbcp.我们仅仅管使用连接不须要考虑连接是怎样被创建的.对于我们来说这就像是一个工厂,隐藏了创建的细节.所以,这就是面向接口编程.我们拿到DataSource接口就OK了.

以下我们看看数据源是怎样在JBoss注冊的,我们又是怎样从连接池取连接的?

在JBoss的standalone.xml配置文件<datasources></datasources>节点中配置数据源,代码例如以下:

 <datasource jta="true" jndi-name="java:jboss/datasources/PjMysqlDS" pool-name="PjMysqlDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://192.168.24.118:3306/itoo_assess?useUnicode=true&characterEncoding=UTF-8</connection-url>
<driver>mysql</driver>
<pool>
<prefill>false</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>root</user-name>
<password>888888</password>
</security>
</datasource>
public Connection getConnection{
Connection conn=null;
PreparedStatement pstmt=null;
try{
Context ctx=new InitialContext();
//通过JNDI查找DataSource
DataSource ds=(DataSource)ctx.lookup("java:jboss/datasources/PjMysqlDS");
conn=ds.getConnection();
}catch(Exception e){
e.printStackTrace();
}
return conn;
}

JNDI另一个典型的应用,即分布式对象的訪问.如EJB.  把对象注冊到这棵树上,起个名,远程lookup这个服务,仅仅要知道这个服务所处机器的IP和port号,就能够将这个服务传到client的本地.

知识都是连通的,当我们可以熟练地从一个跳到还有一个就说明我们会学了.

JBoss配置连接池的更多相关文章

  1. 项目经验——jboss 配置数据库连接池

    数据库的连接和关闭是非常消耗系统资源的,在多层结构的应用环境中,这种资源消耗又直接的反映到系统性能上来.在项目实际应用中,最常用的解决方案便是建立数据库连接池. 一.数据库连接池基本原理 当程序启动时 ...

  2. 转!数据库连接池概念、种类、配置(DBCP\C3P0\JndI与Tomact配置连接池)

    数据库连接池概念.种类.配置(DBCP\C3P0\JndI与Tomact配置连接池) 一.DBCP 连接:DBCP 连接池是 Apache 软件基金组织下的一个开源连接池实现. 需要的 java 包c ...

  3. Tomcat上配置连接池{ connect error=Name [jdbc/OracleDB] is not bound in this Context. Unable to find [jdbc]}

    . 在学习期间,从未实践过在tomcat上配置连接池,今天终于实现一次,在tomcat玩了一把,不知道你是否现在有和我一样的困境.废话少说直接上代码   java  public static Con ...

  4. springboot2.0配置连接池(hikari、druid)

    springboot2.0配置连接池(hikari.druid) 原文链接:https://www.cnblogs.com/blog5277/p/10660689.html 原文作者:博客园--曲高终 ...

  5. Spring配置连接池

    ---------------------siwuxie095                                 Spring 配置连接池         1.Spring 配置内置连接 ...

  6. spring配置连接池和dao使用jdbcTemplate

    1 spring配置c3p0连接池 第一步 导入jar包 第二步 创建spring配置文件,配置连接池 (1)把代码中的实现在配置文件中实现 2 dao使用jdbcTemplate (1) 创建ser ...

  7. Tomcat 配置连接池

    1. Tomcat 配置 JNDI 资源 JNDI(Java Naming and Directory Interface), Java 命名和目录接口; JNDI 作用: 在服务器上配置资源, 然后 ...

  8. Tomcat配置连接池

    Tomcat配置DBCP连接池 配置tomcat服务器的时候,使用到jndi;通过Context配置文件实现配置池对象,通过new initialConext()对象的lookup()获取到数据池对象 ...

  9. [转帖]springboot2.0配置连接池(hikari、druid)

    springboot2.0配置连接池(hikari.druid) 原文链接:https://www.cnblogs.com/blog5277/p/10660689.html 原文作者:博客园--曲高终 ...

随机推荐

  1. windows 快捷调用

    win + x:系统常用管理工具: win + r,或者按下 windows 键,在输入框中输入: services.msc:服务管理: diskmgmt.msc:磁盘管理: devmgmt.msc: ...

  2. 登录那些事儿+ Session原理

    http://cnodejs.org/topic/5671441a1d2912ce2a35aaa1  登录那些事儿 http://www.jianshu.com/p/2b7c10291aad Sess ...

  3. [luogu P2586] GCD 解题报告 (莫比乌斯反演|欧拉函数)

    题目链接:https://www.luogu.org/problemnew/show/P2568#sub 题目大意: 计算​$\sum_{x=1}^n\sum_{y=1}^n [gcd(x,y)==p ...

  4. Java基础学习(一) -- Java环境搭建、数据类型、分支循环等控制结构、简单一维数组详解

    一:java概述: 1982年,SUN公司诞生于美国斯坦福大学校园,并于1986年上市,在NASDAQ(纳斯达克:是全美证券商协会自动报价系统)的标识为SUNW,2007年改为JAVA. 2009年4 ...

  5. ListView和GridView的setOnScrollListener的简介

    ---恢复内容开始--- 设置ListView和GridView的滑动监听 circle_lv.setOnScrollListener(new AbsListView.OnScrollListener ...

  6. 编译报错一列----aclocal找不到

    编译源码包报错: 说aclocal这个命令找不到 解决: 使用 yum install -y automake问题解决

  7. Unified BeginFrame scheduling for Chrome

    Unified BeginFrame scheduling for Chrome http://goo.gl/D1Qxrr Status: http://crbug.com/401331 and ht ...

  8. c3p0-config.xml

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xml> <c3p0-confi ...

  9. 紫书 习题 10-5 UVa 1213(01背包变形)

    这里就是01背包多了一维物品个数罢了 记得不能重复所以有一层循环顺序要倒着来 边界f[0][0] = 1 #include<cstdio> #include<vector> # ...

  10. IDEA使用GIT 上传到GitHub

    1.下载Git https://www.git-scm.com/download/ 2.安装 3.IDEA配置Git(设置Git路径,点击Test),如下代表成功 4.创建仓库 5.add 6.pus ...