当前位置: 首页 > news >正文

网站源码检测山东济南seo整站优化公司

网站源码检测,山东济南seo整站优化公司,江苏平台网站建设价位,seo搜索优化是什么✨前言✨ 本篇作为主要在于介绍jdbc数据库连接池#xff0c;以及多种连接池的用法 #x1f352;欢迎点赞 #x1f44d; 收藏 ⭐留言评论 #x1f4dd;私信必回哟#x1f601; #x1f352;博主将持续更新学习记录收获#xff0c;友友们有任何问题可以在评论区留言 文章目…✨前言✨ 本篇作为主要在于介绍jdbc数据库连接池以及多种连接池的用法 欢迎点赞 收藏 ⭐留言评论 私信必回哟 博主将持续更新学习记录收获友友们有任何问题可以在评论区留言 文章目录 一JDBC数据库连接池的必要性二数据库连接池技术三多种开源的数据库连接池1C3P0数据库连接池2Druid (德鲁伊) 数据库连接池3HikariCP数据库连接池4DBCP数据库连接池 一JDBC数据库连接池的必要性 1在使用开发基于数据库的web程序时传统的模式基本步骤 在主程序如servlet、beans中建立数据库连接进行sql操作断开数据库连接 2这种模式开发存在的问题: 普通的JDBC数据库连接使用 DriverManager 来获取每次向数据库建立连接的时候都要将 Connection加载到内存中再验证用户名和密码(得花费0.05s1s的时间)。需要数据库连接的时候就向数据库要求一个执行完成后再断开连接。这样的方式将 会消耗大量的资源和时间 。数据库的连接资源并没有得到很好的重复利用。若同时有几百人甚至几千人在线频繁的进行数据库连接操作将占用很多的系统资源严重的甚至会造成服务器的崩溃。 对于每一次数据库连接使用完后都得断开 。否则如果程序出现异常而未能关闭将会导致数据库系统中的内存泄漏最终将导致重启数据库。回忆何为Java的内存泄漏 这种开发 不能控制被创建的连接对象数 系统资源会被毫无顾及的分配出去如连接过多也可能导致内存泄漏服务器崩溃。 二数据库连接池技术 为解决传统开发中的数据库连接问题可以采用数据库连接池技术。 1、数据库连接池的基本思想 就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接当需要建立数据库连接时只需从“缓冲池”中取出一个使用完毕之后再放回去。 数据库连接池负责 分配、管理 和 释放 数据库连接它 允许应用程序重复使用一个现有的数据库连接而不是重新建立一个。 数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中这些 数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用连接池都将一直保证至少拥有这么多的连接数量。连接池的 最大数据库连接数量限定了这个连接池能占有的最大连接数当应用程序向连接池请求的连接数超过最大连接数量时这些请求将被加入到等待队列中。 2、数据库连接池的工作原理 3、数据库连接池技术的优点 1资源重用  由于数据库连接得以重用避免了频繁创建释放连接引起的大量性能开销。在减少系统消耗的基础上另一方面也增加了系统运行环境的平稳性。 2更快的系统反应速度  数据库连接池在初始化过程中往往已经创建了若干数据库连接置于连接池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言直接利用现有可用连接避免了数据库连接初始化和释放过程的时间开销从而减少了系统的响应时间 3新的资源分配手段  对于多应用共享同一数据库的系统而言可在应用层通过数据库连接池的配置实现某一应用最大可用数据库连接数的限制避免某一应用独占所有的数据库资源 4统一的连接管理避免数据库连接泄漏  在较为完善的数据库连接池实现中可根据预先的占用超时设定强制回收被占用连接从而避免了常规数据库连接操作中可能出现的资源泄露 三多种开源的数据库连接池 1、JDBC 的数据库连接池使用 javax.sql.DataSource 来表示DataSource 只是一个接口该接口通常由服务器(Weblogic, WebSphere, Tomcat)提供实现也有一些开源组织提供实现 DBCP是Apache提供的数据库连接池。tomcat服务器自带dbcp数据库连接池。速度相对c3p0较快但因自身存在BUGHibernate3已不再提供支持。C3P0 是一个开源组织提供的一个数据库连接池速度相对较慢稳定性还可以hibernate官方推荐使用。Proxool 是sourceforge下的一个开源项目数据库连接池有监控连接池状态的功能稳定性较c3p0差一点.BoneCP 是一个开源组织提供的数据库连接池速度快。Druid 是阿里提供的数据库连接池据说是集DBCP 、C3P0Proxool优点于一身的数据库连接池但是速度不确定是否有BoneCP快。 2、DataSource 通常被称为数据源它包含连接池和连接池管理两个部分习惯上也经常把 DataSource 称为连接池 3、DataSource用来取代DriverManager来获取Connection获取速度快同时可以大幅度提高数据库访问速度。 特别注意 数据源和数据库连接不同数据源无需创建多个它是产生数据库连接的工厂因此整个应用只需要一个数据源即可。 当数据库访问结束后程序还是像以前一样关闭数据库连接conn.close(); 但conn.close()并没有关闭数据库的物理连接它仅仅把数据库连接释放归还给了数据库连接池。 1C3P0数据库连接池 jar包资源获取 链接: https://pan.baidu.com/s/1i2I_KacKLyMyZPvJLseMoQ?pwd0101 解压之后把下面两个jar包添加到库新版需要添加这两个到库中如下 添加xml配置文件文件名c3p0-config.xml固定的可复制上面资源包中也有 c3p0-config!--使用默认的配置读取数据库连接池对象 --default-config!-- 连接参数 --property namedriverClasscom.mysql.cj.jdbc.Driver/property!-- 连接数据库参数 --property namejdbcUrljdbc:mysql://localhost:3306/sciencedb/property!-- 用户 --property nameuserroot/property!-- 密码 --property namepasswordroot/property!-- 连接池参数 --!--初始化申请的连接数量--property nameinitialPoolSize5/property!--最大的连接数量--property namemaxPoolSize10/property!--超时时间--property namecheckoutTimeout3000/property/default-config!-- named-config nameotherc3p0--!-- lt;!ndash; 连接参数 ndash;gt;--!-- property namedriverClasscom.mysql.jdbc.Driver/property--!-- property namejdbcUrljdbc:mysql://localhost:3306/hs_test?serverTimezoneAsia/Shanghai/property--!-- property nameuserroot/property--!-- property namepasswordroot/property--!-- lt;!ndash; 连接池参数 ndash;gt;--!-- property nameinitialPoolSize5/property--!-- property namemaxPoolSize8/property--!-- property namecheckoutTimeout1000/property--!-- /named-config-- /c3p0-config连接测试 Testpublic void Test_1() throws Exception{//获取到c3p0中默认的数据源ComboPooledDataSource comboPooledDataSource new ComboPooledDataSource();//传入参数使用指定的c3p0连接池//ComboPooledDataSource comboPooledDataSource // new ComboPooledDataSource(otherc3p0);//创建连接数据库Connection conn comboPooledDataSource.getConnection();System.out.println(conn);conn.close();}输出显示 c3p0需要配置log4j日志不然的话控制台会输出很多日志信息 https://blog.csdn.net/sjs52406/article/details/134472475?spm1001.2014.3001.5502 https://blog.csdn.net/weixin_50552284/article/details/115732145 配置文件log4j.properties #日志打印的级别及目的地 debuginfowarnerrorfatal #stdout控制台 logfile日志文件 log4j.rootLoggerwarn , stdout,logfile# Console output...打印到控制台 log4j.appender.stdoutorg.apache.log4j.ConsoleAppender log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n#日志文件打印设置 log4j.appender.logfileorg.apache.log4j.FileAppender #日志的文件地址 log4j.appender.logfile.FilegdLog.log log4j.appender.logfile.layoutorg.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern%d{yyyy-MM-dd HH:mm:ss} %l %F %p %m%n 2Druid (德鲁伊) 数据库连接池 jar包资源获取 链接: https://pan.baidu.com/s/1n992-5zlNGN8ZvglS6yFZA?pwd0101 同样需要添加在项目中如下 添加配置文件文件名不固定 #驱动名称连接MySQL driverClassName com.mysql.cj.jdbc.Driver # 参数 rewiteBatchedStatments true 表示支持批处理机制 url jdbc:mysql://localhost:3306/chenzhoudianyin # 用户名 username root # 密码 password root # 初始化连接数量 initialSize 10 # 最小连接数量 minIdle 5 # 最大连接数量 maxActive 500 # 超时5000ms (在等待队列的最长等待时间诺超时放弃此次连接) maxWait 5000连接测试 Test public void Test1() throws Exception {//加载配置文件Properties properties new Properties();properties.load(new FileInputStream(src\\jdbc.properties));//在工厂中 创建一个数据库 数据源的连接信息来源于properties配置文件中DataSource dataSource DruidDataSourceFactory.createDataSource(properties);Connection conn dataSource.getConnection();System.out.println(conn);conn.close();}输出显示 3HikariCP数据库连接池 jar包资源获取 链接: https://pan.baidu.com/s/1z4TBBhONEwZQ6-eayvyb8w?pwd0101 HikariCP 也需要配置log4j日志如下 添加配置文件 # 数据库连接URL jdbcUrljdbc:mysql://localhost:3306/chenzhoudianyin # 数据库用户名 usernamemyusername # 数据库密码 passwordmypassword # 连接池名称 poolNameMyConnectionPool # 连接池大小 maximumPoolSize10 # 最小空闲连接数 minimumIdle5 # 连接超时时间毫秒 connectionTimeout30000 # 空闲连接超时时间毫秒 idleTimeout600000 # 最大生存时间毫秒 maxLifetime1800000连接测试 Testpublic void TextHiaki() throws Exception{//1配置连接池HikariConfig hikariConfig new HikariConfig();hikariConfig.setJdbcUrl(jdbc:mysql://localhost:3306);hikariConfig.setDriverClassName(com.mysql.cj.jdbc.Driver);hikariConfig.setUsername(root);hikariConfig.setPassword(root);hikariConfig.setMaximumPoolSize(30);//最大连接数hikariConfig.setMinimumIdle(10); //最小连接数//连接超时时间从连接池中获取一个连接最大等待多久时间单位毫秒hikariConfig.setConnectionTimeout(3000);//2.通过配置类生成HikariCP连接池对象HikariDataSource dataSource new HikariDataSource(hikariConfig);System.out.println(dataSource.getConnection());}输出显示 4DBCP数据库连接池 jar包资源获取 链接: https://pan.baidu.com/s/1x4gKgfGL07-J3zTe9Ph17w?pwd0101 同样需要添加在项目中如下 添加配置文件 urljdbc:mysql://localhost:3306/sciencedb driverClassNamecom.mysql.cj.jdbc.Driver usernameroot passwordroot initialSize10 maxActive30 maxWait3000连接测试 Testpublic void testDBCP() throws Exception{// 创建一个Properties对象Properties properties new Properties();// 创建一个FileInputStream对象用于读取src\\dbcp.properties文件FileInputStream fileInputStream new FileInputStream(src\\dbcp.properties);// 使用FileInputStream对象读取文件并将文件内容加载到properties对象中properties.load(fileInputStream);// 使用properties对象创建一个BasicDataSource对象BasicDataSource dataSource BasicDataSourceFactory.createDataSource(properties);// 打印dataSource对象创建的连接System.out.println(dataSource.getConnection());}输出显示 ✨最后✨ 总结不易希望uu们不要吝啬你们的哟()ノ~ 如有问题欢迎评论区批评指正
http://www.zqtcl.cn/news/462816/

相关文章:

  • 建设网站对企业有什么好处wordpress教程视频下载
  • 郑州网站提升排名上海 企业 网站建设
  • 南昌好的做网站的公司营销型网站 案例
  • 南宁经典网站建设网络运维工程师是干什么的
  • 网站开发算法建网站难不难
  • 茂名模板建站定制网站开发 ide
  • 做网站现在用什么语言网站估价
  • wap开头的网站外贸网站建设官网
  • 做网站说什么5.0啥意思wordpress教程视频 下载
  • 业务型网站做seo郑州网站推广优化
  • 400网站建设南昌网站建设方案详细版
  • 网站评论回复如何做中国住建部和城乡建设官网
  • 怎么建设网站南京做南京华美整容网站
  • 有哪些可以做1元夺宝的网站推广网站哪家做的好
  • 网站备案 域名不是自己的成都电子商务网站
  • 网站内容管理系统建设2021年建站赚钱
  • 网站建设交流发言稿找做网站的上什么app
  • 企业如何应用网站的wordpress lensnews
  • 可信的邢台做网站学电商运营需要多少钱
  • 网站中文名称做微商进哪个网站安全
  • 网站前端建设需要学会什么意思wordpress 快递查询 插件
  • 网站建设腾讯云与阿里云做网站上市的公司
  • 视频直播网站app开发网站备案主体是
  • 做的好的微信商城网站建设商务网站
  • 小白用网站建设工具专做奢侈品品牌的网站
  • 安装vs2015网站开发外包公司为什么没人去
  • 网站关键字多少合适唐河微网站开发
  • 临沂网站建站专业公司网站开发 文学
  • 乐清网站建设服务定制企业网站建设
  • 简单公司网站模版百度站长工具抓取诊断