连接池

使用 Tomcat 7 新的连接池 —— Tomcat jdbc pool

▼魔方 西西 提交于 2020-01-21 08:19:22
Tomcat 在 7.0 以前的版本都是使用 commons-dbcp 做为连接池的实现,但是 dbcp 饱受诟病,原因有: dbcp 是单线程的,为了保证线程安全会锁整个连接池 dbcp 性能不佳 dbcp 太复杂,超过 60 个类 dbcp 使用静态接口,在 JDK 1.6 编译有问题 dbcp 发展滞后 因此很多人会选择一些第三方的连接池组件,例如 c3p0 , bonecp , druid ( @wenshao ) 等。 为此,Tomcat 从 7.0 开始引入一个新的模块:Tomcat jdbc pool tomcat jdbc pool 近乎兼容 dbcp ,性能更高 异步方式获取连接 tomcat jdbc pool 是 tomcat 的一个模块,基于 tomcat JULI,使用 Tomcat 的日志框架 使用 javax.sql.PooledConnection 接口获取连接 支持高并发应用环境 超简单,核心文件只有8个,比 c3p0 还 更好的空闲连接处理机制 支持 JMX 支持 XA Connection tomcat jdbc pool 的优点远不止这些,详情请看 这里 。 tomcat jdbc pool 可在 Tomcat 中直接使用,也可以在独立的应用中使用。 Tomcat 中直接使用的方法: 数据源配置: auth="Container" type=

Mybatis中的三种连接池

孤者浪人 提交于 2020-01-20 21:11:31
连接池 减少获取连接所消耗的时间 连接池就是用于存储连接的容器 mybatis连接池 主配置文件中的dataSource标签,type属性 POOLED:采用传统的DataSource规范的连接池 UNPOOLED:采用传统的获取连接的方式,没有池的思想 JNDI:采用服务器提供的JNDI技术实现,获取DataSource对象 来源: CSDN 作者: 陌尘吖 链接: https://blog.csdn.net/qq_25884515/article/details/104054823

java调用redis的多种方式与心得

怎甘沉沦 提交于 2020-01-20 10:57:51
心得: /** * 心得: * 1.连接方式主要有:直连同步,直连事务,直连管道,直连管道事务,分布式直连同步,分布式直连管道,分布式连接池同步,分布式连接池管道; * 2.同步方式会返回数据库执行结果,管道则不会返回数据库执行结果; * 3。管道分两种执行方式:有返回命令执行结果,无返回命令执行结果; * 4.返回数据库执行结果 与 返回命令执行结果 不是一个东西; * 5一般管道的无返回命令执行结果 的执行方式会比 有返回结果的方式快一点点,,但是在分布式连接池的测试里则得出相反的结果, * 因此,这两种管道方式的速度差距不大,按使用需求即可。 */测试源码 * redis几种调用方法 */ /** * 普通直连同步写入操作,于myRedis方法一样,都是单实例方法 * * 同步执行,会返回执行结果 * 写入10万行字符串 */ @org.junit.Test public void r1() { Jedis jedis = new Jedis("127.0.0.1", 6379); //密码,如果服务器没有密码,则会报错,因此,要对用使用 //jedis.auth("admin"); long start = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { //返回的是个字符串 String res

Hibernate连接池配置实例

与世无争的帅哥 提交于 2020-01-20 04:41:30
Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP。在Hibernate连接池配置时需要注意的有三点: 一、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在缺陷。如果你因为某种原因需要在Hibernate3中使用DBCP,建议采用JNDI方式。 二、默认情况下(即没有配置连接池的情况下),Hibernate会采用内建的连接池。但这个连接池性能不佳,且存在诸多BUG(笔者就曾在Mysql环境下被八小时连接悬空问题困扰过),因此官方也只是建议仅在开发环境下使用。 三、Hibernate2和Hibernate3的命名空间有所变化。例如,配置C3P0时的provider_class有Hibernate2环境下使用net.sf.hibernate.connection.C3P0ConnectionProvider,在Hibernate3环境下使用org.hibernate.connection.C3P0ConnectionProvider。 下面是Hibernate环境下几种常见的连接池配置: 1.默认Hibernate连接池配置 <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration

springboot连接池有dbcp,dbcp2, tomcat, hikari四种连接池

♀尐吖头ヾ 提交于 2020-01-20 02:10:26
https://www.cnblogs.com/wzk-0000/p/9544432.html 转载自这里!!!感谢大哥! 本文使用的是springboot2.0(在配置数据源时和springboot1.X略有区别) 首先:springboot默认支持的连接池有dbcp,dbcp2, tomcat, hikari四种连接池 由于Tomcat数据源连接池的性能和并发,在tomcat可用时,我们总是优先使用它。 如果HikariCP可用,我们将使用它。 如果Commons DBCP可用,我们将使用它,但在生产环境不推荐使用它。 最后,如果Commons DBCP2可用,我们将使用它   即自动优先级tomcat>HikariCP>DBCP>DBCP2(想要使用后面的连接池需要指定类型type:如:spring.datasource.ccjoin-settlement.type=org.apache.commons.dbcp2.BasicDataSource) 本例使用的是用多数据源,不同连接池: 需要的包: spring-boot-starter-web(包含自带的tomcat)、mybatis-spring-boot-starter springboot数据库连接: 有两种方法与数据库建立连接,一种是集成Mybatis,另一种用JdbcTemplate

DRUID连接池的实用 配置详解

风格不统一 提交于 2020-01-20 01:08:05
文章目录 DRUID介绍 配置参数 基于纯Java代码使用(不建议使用): ds.properties内容: 基于Spring的配置: 浏览器验证功能 DRUID介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池 配置参数 和其它连接池一样DRUID的DataSource类为:com.alibaba.druid.pool.DruidDataSource,基本配置参数如下: 配置 缺省值 说明 name 配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来 区分开来。 如果没有配置,将会生成一个名字,格式是:“DataSource-” + System.identityHashCode(this) jdbcUrl 连接数据库的url,不同数据库不一样。例如: mysql : jdbc:mysql://10.20.153.104:3306/druid2 oracle : jdbc:oracle:thin:@10.20.149.85:1521:ocnauto username 连接数据库的用户名 password 连接数据库的密码。如果你不希望密码直接写在配置文件中,可以使用ConfigFilter。详细看这里

在Springboot应用使用redis缓存

与世无争的帅哥 提交于 2020-01-18 01:35:23
在Springboot应用使用redis缓存 缓存 缓存使用的场合 redis缓存 redis缓存使用实例 redis的安装 Window 环境 ubuntu/deepin 环境 引入依赖 在配置文件application.properties中添加如下配置: 在配置类上引入注解@EnableCaching开启缓存 在业务对象使用缓存注解 缓存注解代码示例 进行测试 缓存 缓存(cache,又称高速缓存)是指可以高速访问的、用于临时存储的数据存储区。 缓存使用的场合 缓存一般用于在较短的时间段对相同数据频繁读取的场合,将读取频度较高的数据放入缓存,直接从缓存取数据,以提高效率。 redis缓存 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis本身是一个内存数据库,在应用中可以充当缓存,提高系统数据查询性能。 redis缓存使用实例 redis的安装 Window 环境 下载地址: https://github.com/MSOpenTech/redis/releases 下载zip版本或者安装版(建议zip版) 解压 打开一个 cmd 窗口 使用cd命令切换目录到 redis解压目录, 运行 redis-server redis.windows.conf,启动redis服务

JDBC简介

删除回忆录丶 提交于 2020-01-17 20:43:43
JDBC操作数据库的步骤 ? 注册数据库驱动。 建立数据库连接。 创建一个Statement。 执行SQL语句。 处理结果集。 关闭数据库连接 代码如下 JDBC中的Statement 和PreparedStatement,CallableStatement的区别? 区别: PreparedStatement是预编译的SQL语句,效率高于Statement。 PreparedStatement支持?操作符,相对于Statement更加灵活。 PreparedStatement可以防止SQL注入,安全性高于Statement。 CallableStatement适用于执行存储过程。 JDBC中大数据量的分页解决方法? 最好的办法是利用sql语句进行分页,这样每次查询出的结果集中就只包含某页的数据内容。 说说数据库连接池工作原理和实现方案? 工作原理: JAVA EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。 实现方案: 连接池使用集合来进行装载,返回的Connection是原始Connection的代理

PHP - MongoDB连接攻略

邮差的信 提交于 2020-01-17 19:05:17
http://blog.163.com/lgh_2002/blog/static/44017526201261111044608/ 使用PHP的Mongo扩展连接MongoDB。通过new Mongo对象建立数据库连接。 class Mongo { public function __construct( $servers , $options = array ()); } 参数$server是PHP-MongoDB-Driver标准连接字符串格式 mongodb://[username:password@]host1[:port1][,host2[:port2:],…]/database 参数$options是一个数组。不同于标准MongoDB连接字符串,PHP-Mongo-Driver不将options拼接到连接字串中。 参数$options默认值: $options = array ( 'connect' => true ); 可选配置: $options = array ( 'connect' => true, // true表示Mongo构造函数中建立连接。 'timeout' =>xxxx, // 配置建立连接超时时间,单位是ms 'replicaSet' => 'name' , // 配置replicaSet名称 'username' => '' , // 覆盖