精华内容
下载资源
问答
  • 连接数据池

    2004-09-08 11:45:00
    类中public class InterfaceFactory {OutBoundDbConnection outboundDbConnection = null;public OutBoundDbConnection getOutboundDbConnection() throws InstantiationException, IllegalAccessException

    类中

    public class InterfaceFactory {

    OutBoundDbConnection outboundDbConnection = null;

    public OutBoundDbConnection getOutboundDbConnection()
      throws
       InstantiationException,
       IllegalAccessException,
       ClassNotFoundException {
      outboundDbConnection =
       (OutBoundDbConnection) Class
        .forName("com.isoftstone.struts.biz.dao.ConnData")
        .newInstance();
      return outboundDbConnection;
     }

    }

    接口

    public interface  OutBoundDbConnection {

     public Connection Dbconnection(String dbdrivers, String dbname);
     public Connection Dbconnection();
     public Connection Dbconnection1();
    }

    调用

     InterfaceFactory interfaceFactory = new InterfaceFactory();

    con = interfaceFactory.getOutboundDbConnection().Dbconnection();

    展开全文
  • 数据连接池

    2010-09-21 21:57:00
    数据连接池

    展开全文
  • 初识数据连接池

    千次阅读 2018-10-17 13:35:13
    什么是数据连接池? 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而...

    数据连接池

    什么是数据连接池?
    数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。

    为什么要使用数据连接池?
    原因:建立数据库连接是相当耗时和耗费资源的,而且一个数据库服务器能够同时建立的连接数也是有限的
    1.从连接池获取或创建可用连接
    2.使用完毕之后,把连接返回给连接池
    3.在系统关闭前,断开所有连接并且释放连接占用的系统资源
    4.能够处理无效连接,限制连接数量

    有哪些数据连接池?
    Spring数据源(连接池):
    1.J2EE中JNDI
    2.Spring的数据源实现类:DriverManagerDatasource、SimpleDriverDatasource、SingleConnectionDatasource
    3.第三方数据源:C3P0数据源(适用Hibernate开发)、apacheDBCP数据源(适用spring开发)、阿里的Druid(性能最优)
    4.嵌入式数据源(用于测试)

    Druid可以做是什么?
    1.Druid提供了一个高效、功能强大、可扩展性好的数据库连接池
    2.可以监控数据库访问性能,使用Druid.io可以实现联机分析处理OLAP
    3.数据库密码加密。
    4.SQL执行日志
    5.扩展JDBC

    在这里插入图片描述

    展开全文
  • 配置数据池连接数据库完整小项目实例! 配置数据池连接数据库完整小项目实例! 配置数据池连接数据库完整小项目实例! 配置数据池连接数据库完整小项目实例! 配置数据池连接数据库完整小项目实例! 配置数据池连接数据库...
  • SpringBoot整合Druid数据连接池

    万次阅读 2020-03-19 11:34:27
    文章目录SpringBoot整合Druid数据连接池Druid是什么?在哪里下载druid怎么获取Druid的源码怎么配置maven开始配置 SpringBoot整合Druid数据连接池 Druid是什么? Druid是Alibaba开源的的数据库连接池。Druid能够提供...

    SpringBoot整合Druid数据连接池

    Druid是什么?

    Druid是Alibaba开源的的数据库连接池。Druid能够提供强大的监控和扩展功能。

    在哪里下载druid

    maven中央仓库: http://central.maven.org/maven2/com/alibaba/druid/

    怎么获取Druid的源码

    Druid是一个开源项目,源码托管在github上,源代码仓库地址是 https://github.com/alibaba/druid。同时每次Druid发布正式版本和快照的时候,都会把源码打包,你可以从上面的下载地址中找到相关版本的源码

    怎么配置maven

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <!-- 可通过中央仓库获取最新的版本号,这里用我项目中的版本号 -->
        <version>1.0.11</version>
    </dependency>
    

    开始配置

    • 首先是 application.properties
    # 数据库配置
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    # 注:此处必须用 Druid 的数据源
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    spring.datasource.name=test
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.initialSize=5
    spring.datasource.minIdle=5
    spring.datasource.maxActive=10
    spring.datasource.maxWait=60000
    spring.datasource.timeBetweenEvictionRunsMillis=3600000
    spring.datasource.minEvictableIdleTimeMillis=3600000
    spring.datasource.validationQuery=select 'x'
    spring.datasource.testWhileIdle=true
    spring.datasource.testOnBorrow=true
    spring.datasource.testOnReturn=false
    spring.datasource.poolPreparedStatements=true
    spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
    spring.datasource.filters=stat,wall,slf4j
    spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    spring.datasource.useGlobalDataSourceStat=true
    
    # druid 登录信息
    druid.config.user-name=root
    druid.config.password=root
    druid.config.url-mapping=/druid/*
    
    • 封装数据库配置到 Java Bean
    @Configuration
    @ConfigurationProperties(prefix = "spring.datasource")
    public class DBProperties {
        private String url;
        private String username;
        private String password;
        private String driverClassName;
        private int initialSize;
        private int minIdle;
        private int maxActive;
        private int maxWait;
        private int timeBetweenEvictionRunsMillis;
        private int minEvictableIdleTimeMillis;
        private String validationQuery;
        private boolean testWhileIdle;
        private boolean testOnBorrow;
        private boolean testOnReturn;
        private boolean poolPreparedStatements;
        private int maxPoolPreparedStatementPerConnectionSize;
        private String filters;
        private String connectionProperties;
        private boolean useGlobalDataSourceStat;
    
        public String getUrl() {
            return url;
        }
    
        public void setUrl(String url) {
            this.url = url;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String getDriverClassName() {
            return driverClassName;
        }
    
        public void setDriverClassName(String driverClassName) {
            this.driverClassName = driverClassName;
        }
    
        public int getInitialSize() {
            return initialSize;
        }
    
        public void setInitialSize(int initialSize) {
            this.initialSize = initialSize;
        }
    
        public int getMinIdle() {
            return minIdle;
        }
    
        public void setMinIdle(int minIdle) {
            this.minIdle = minIdle;
        }
    
        public int getMaxActive() {
            return maxActive;
        }
    
        public void setMaxActive(int maxActive) {
            this.maxActive = maxActive;
        }
    
        public int getMaxWait() {
            return maxWait;
        }
    
        public void setMaxWait(int maxWait) {
            this.maxWait = maxWait;
        }
    
        public int getTimeBetweenEvictionRunsMillis() {
            return timeBetweenEvictionRunsMillis;
        }
    
        public void setTimeBetweenEvictionRunsMillis(int timeBetweenEvictionRunsMillis) {
            this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
        }
    
        public int getMinEvictableIdleTimeMillis() {
            return minEvictableIdleTimeMillis;
        }
    
        public void setMinEvictableIdleTimeMillis(int minEvictableIdleTimeMillis) {
            this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
        }
    
        public String getValidationQuery() {
            return validationQuery;
        }
    
        public void setValidationQuery(String validationQuery) {
            this.validationQuery = validationQuery;
        }
    
        public boolean isTestWhileIdle() {
            return testWhileIdle;
        }
    
        public void setTestWhileIdle(boolean testWhileIdle) {
            this.testWhileIdle = testWhileIdle;
        }
    
        public boolean isTestOnBorrow() {
            return testOnBorrow;
        }
    
        public void setTestOnBorrow(boolean testOnBorrow) {
            this.testOnBorrow = testOnBorrow;
        }
    
        public boolean isTestOnReturn() {
            return testOnReturn;
        }
    
        public void setTestOnReturn(boolean testOnReturn) {
            this.testOnReturn = testOnReturn;
        }
    
        public boolean isPoolPreparedStatements() {
            return poolPreparedStatements;
        }
    
        public void setPoolPreparedStatements(boolean poolPreparedStatements) {
            this.poolPreparedStatements = poolPreparedStatements;
        }
    
        public int getMaxPoolPreparedStatementPerConnectionSize() {
            return maxPoolPreparedStatementPerConnectionSize;
        }
    
        public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) {
            this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize;
        }
    
        public String getFilters() {
            return filters;
        }
    
        public void setFilters(String filters) {
            this.filters = filters;
        }
    
        public String getConnectionProperties() {
            return connectionProperties;
        }
    
        public void setConnectionProperties(String connectionProperties) {
            this.connectionProperties = connectionProperties;
        }
    
        public boolean isUseGlobalDataSourceStat() {
            return useGlobalDataSourceStat;
        }
    
        public void setUseGlobalDataSourceStat(boolean useGlobalDataSourceStat) {
            this.useGlobalDataSourceStat = useGlobalDataSourceStat;
        }
    
    }
    
    @Configuration
    @ConfigurationProperties(prefix = "druid.config")
    public class DruidProperties {
    
        private String userName;
    
        private String password;
    
        private String urlMapping;
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String getUrlMapping() {
            return urlMapping;
        }
    
        public void setUrlMapping(String urlMapping) {
            this.urlMapping = urlMapping;
        }
    }
    
    • 配置数据源
    /**
     * 持久层相关配置
     */
    @Configuration
    public class SessionFactoryConfig {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(SessionFactoryConfig.class);
    
        private final DBProperties db;
    
        @Autowired
        public SessionFactoryConfig(DBProperties db) {
            this.db = db;
        }
    
        /**
         * 创建数据源
         */
        @Bean
        // 如果访问 Druid 时数据源页面显示 (*) property for user to setup 可用下面的 Bean 注入方式
        // @Bean(destroyMethod = "close", initMethod = "init")
        public DruidDataSource druidDataSource() {
            final DruidDataSource datasource = new DruidDataSource();
            datasource.setUrl(db.getUrl());
            datasource.setUsername(db.getUsername());
            datasource.setPassword(db.getPassword());
            datasource.setDriverClassName(db.getDriverClassName());
            datasource.setInitialSize(db.getInitialSize());
            datasource.setMinIdle(db.getMinIdle());
            datasource.setMaxActive(db.getMaxActive());
            datasource.setMaxWait(db.getMaxWait());
            datasource.setTimeBetweenEvictionRunsMillis(db.getTimeBetweenEvictionRunsMillis());
            datasource.setMinEvictableIdleTimeMillis(db.getMinEvictableIdleTimeMillis());
            datasource.setValidationQuery(db.getValidationQuery());
            datasource.setTestOnReturn(db.isTestOnReturn());
            datasource.setPoolPreparedStatements(db.isPoolPreparedStatements());
            datasource.setMaxPoolPreparedStatementPerConnectionSize(db.getMaxPoolPreparedStatementPerConnectionSize());
            datasource.setUseGlobalDataSourceStat(db.isUseGlobalDataSourceStat());
            try {
    			datasource.setFilters(db.getFilters());
    		} catch (SQLException e) {
    			log.info("setFilters Exception ={}", e);
    		}
            datasource.setConnectionProperties(db.getConnectionProperties());
            return datasource;
        }
    }
    
    • Druid连接池配置
    /**
     * Druid连接池配置
     */
    @Configuration
    public class DruidConfiguration {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(DruidConfiguration.class);
    
        private final DruidProperties druidProperties;
    
        @Autowired
        public DruidConfiguration(DruidProperties dp) {
            this.druidProperties = dp;
        }
    
        /**
         * 访问路径及用户名、密码
         */
        @Bean
        public ServletRegistrationBean druidConfig() {
            LOGGER.info("init Druid Servlet Configuration ");
            final ServletRegistrationBean srb = new ServletRegistrationBean();
            srb.setServlet(new StatViewServlet());
            LOGGER.info("Druid Config Info --> {}", druidProperties);
            srb.addUrlMappings(druidProperties.getUrlMapping());
            srb.addInitParameter("loginUsername", druidProperties.getUserName());
            srb.addInitParameter("loginPassword", druidProperties.getPassword());
            return srb;
        }
    
        /**
         * 配置过滤器
         */
        @Bean
        public FilterRegistrationBean filterRegistrationBean() {
            final FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
            filterRegistrationBean.setFilter(new WebStatFilter());
            filterRegistrationBean.addUrlPatterns("/*");
            filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
            return filterRegistrationBean;
        }
    }
    
    • 委托Druid进行Spring 监控
    /**
     * 委托Druid进行Spring 监控
     */
    @Configuration
    public class SpringMonitoringConfig {
    
        @Bean(name = "druid-stat-interceptor")
        public DruidStatInterceptor druidStatInterceptor() {
            return new DruidStatInterceptor();
        }
    
        @Bean(name = "druid-stat-pointcut")
        // 非单例
        @Scope("prototype")
        public JdkRegexpMethodPointcut druidStatPointcut() {
            final JdkRegexpMethodPointcut pointcut = new JdkRegexpMethodPointcut();
            // 这里是你Controller包的路径
            pointcut.setPatterns("com.xxx.controller.*", "com.xxx.mapper.*");
            return pointcut;
        }
    
        @Bean
        public DefaultPointcutAdvisor druidStatAdvisor(@Qualifier("druid-stat-interceptor") final DruidStatInterceptor druidStatInterceptor,
                                                       @Qualifier("druid-stat-pointcut") final JdkRegexpMethodPointcut druidStatPointcut) {
            final DefaultPointcutAdvisor defaultPointAdvisor = new DefaultPointcutAdvisor();
            defaultPointAdvisor.setPointcut(druidStatPointcut);
            defaultPointAdvisor.setAdvice(druidStatInterceptor);
            return defaultPointAdvisor;
        }
    
    }
    
    • 项目启动,访问 http://127.0.0.1:端口号/druid

    在这里插入图片描述
    在这里插入图片描述

    如果出现以上页面,恭喜你。整合 OK 😃

    展开全文
  • Jdbc连接数据池

    2016-08-09 17:35:36
    主要是JAVAWEB利用数据池连接Oracle数据库的一个小例子
  • 一个数据源,可以是一个连接池,也可以只是一个Connection。 一个连接池,有多个Connection。 参考: 连接池数据源的区别是什么 [ 连接池数据源、多数据
  • 数据源与连接池

    2018-09-10 17:00:44
    . 连接池基本的思想,原理 数据库连接池技术的优点: c3p0的使用
  • mysql数据连接池

    2017-11-21 13:58:02
    python编程中可以使用MySQLdb进行数据库的连接及诸如查询...因此,实际使用中,通常会使用数据库的连接池技术,来访问数据库达到资源复用的目的。 python的数据库连接池包 DBUtils: DBUtils是一套Python数据库连接
  • 使用Druid数据连接池连接PostgreSQL简单例子,搭建一个简单测试环境
  • 所以简明扼要地说:数据源即提供了 对数据库的连接, 当多个线程同时对数据库进行连接时,为实现对数据源的有效管理 也就形成了 数据库连接池. 1.1 数据源常见属性: databaseName String数据库名称,即数据库的SID。 ...
  • 数据源和连接池

    2019-01-02 10:08:05
    DataSource通常被称为数据源,它包含连接池连接池管理两部分,习惯是也把DataSource称为连接池 连接池通俗的理解:数据库连接池就是准备一个池子,里面放着很多生成好的Connection,用户请求获得连接,就不需要get...
  • 数据连接池的工作机制。使用数据连接池可以减轻服务器的负担,能够提高程序的性能
  • 数据连接池——JNDI

    万次阅读 2014-03-05 21:12:34
    数据库连接有很多中方式,JDBC数据库的连接方式,前边我们已经介绍过了,而开发中我们经常使用的是DataBaseConnectionPool(数据库连接池,DBCP)。数据库连接池到底是什么?它比jdbc数据库连接有什么优势呢?它又怎么...
  • 连接池中的连接对象是由数据源(DataSource)创建的。 连接池(Connection Pool)用来管理连接(Connection)对象。 数据源: 数据源(DataSource)用来连接数据库,创建连接(Connection)对象。  java.sql....
  • springboot 数据连接池HikariPool

    千次阅读 2019-04-30 10:04:44
    此前用springboot 一致没关注到这个点,也一直奇怪自动配置用了什么连接池,一直以来所认识得连接池就c3p0、druid、jdbc、dbcp,在跑程序得时候发现控制台打印HikariPool 好奇之下查阅了一些资料,关于几个连接池得...
  • ADO.NET数据连接池

    千次阅读 2016-06-14 10:46:34
    对于以数据库做数据存储基石的应用系统来说,数据库连接是整个系统中最珍贵的资源之一。数据库连接池是为了更有效地利用数据库连接的最重要措施。它对于一个大型的应用系统的性能至关重要,特别是Web应用。 ADO.NET...
  • 基于 基础的数据访问–jdbc 。spring 中的数据访问。spring boot中的数据访问 ...连接池分配,管理,销毁连接(Connection),数据源保存你连接的数据库,创建连接(Connectioon )【使用了一种设计模式:工厂模式】 ...
  • 数据连接池的工作原理   连接池用于创建和管理数据库连接的缓冲技术,缓冲中的连接可以被任何需要他们的线程使用。当一个线程需要用JDBC对一个数据库操作时,将从中请求一个连接。当这个连接使用完毕后,将...
  • pom.xml依赖文件,项目负载的可能需要解决依赖冲突,...-- 数据连接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12
  • 当程序需要连接对象时从数据池中取出一个,当连接对象用完毕将其放回连接池,从而避免每次都需要申请。  所以抽重点,传统的链接数据库每次访问都需要加载驱动器,然后连接,一大堆代码重复使用,当需要更改的时候...
  • 阿里druid数据连接池jar包(完整版)

    万次阅读 多人点赞 2018-08-27 00:22:21
    Druid(德鲁伊)是阿里巴巴开发的号称为监控而生的数据库连接池,Druid是目前最好的数据库连接池。在功能、性能、扩展性方面,都超过其他数据库连接池,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,096
精华内容 6,038
关键字:

连接数据池