一、使用场景:

大型高并发应用里 
       使用连接池的好处:就是可以限制应用的连接数,另外,不用再额外地去创建每个连接,MySQL创建连接的开销也是较大的,因为创建一个新连接相当于MySQL创建了一个thread。

二、工作原理:

1,创建数据库配置文件jdbc.properties

url =jdbc:mysql://localhost:3306/stu_score?serverTimezone=UTC
user = user_hyq
password = 123456
driver = com.mysql.cj.jdbc.Driver

2,定义一个使用jdbc连接数据库的工具类BaseDao.java

public class BaseDao {public Connection conn = null;public PreparedStatement pstmt = null;public ResultSet rs = null;static String url = null;static String user = null;static String password = null;static String driver = null;// 使用静态块static {//构造对象Properties pro = new Properties();//构造流//  InputStream is=BaseDao.class.getClassLoader().getResourceAsStream("jdbc.properties");try {//加载配置文件pro.load(new FileReader("src/jdbc.properties"));//获取属性值url = pro.getProperty("url");user = pro.getProperty("user");password = pro.getProperty("password");driver = pro.getProperty("driver");} catch (IOException e) {e.printStackTrace();}}/*** 获得连接对象** @return Connection*/public Connection getConnection() {//第一步:加载驱动try {Class.forName(driver);//第二步:获取连接conn = DriverManager.getConnection(url, user, password);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return conn;}

三、实现步骤

1,配置tomcat中的conf--->context.xml

<Context> <Resource name="jdbc/news" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="newsu"password="123456" driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://127.0.0.1:3306/newsmanagersystem?         useUnicode=true&amp;characterEncoding=utf-8" />
</Context>

2,配置web.xml

注意:<res-ref-name><res-type> <res-auth>与配置context.xml时中的<Resource name="jdbc/news" auth="Container" type="javax.sql.DataSource" />一一对应

<resource-ref> <res-ref-name>jdbc/news</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth>
</resource-ref>

3,添加jar包

  • 把数据库驱动jar文件,加入到Tomcat的lib中(mysql-connector-java-8.0.26.jar)下载地址https://dev.mysql.com/downloads/file/?id=477058
  • 移除项目中引入的jar包
  • Project Structure----->Modules----->Dependencies
  • 删除lib包中的引入的jar包

四、代码的编写

注意:DateSource包导入的是javax.sql.DataSource

    Context ctx = new InitialContext(); DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/news");conn = ds.getConnection();

数据库连接池使用场景,工作原理和实现步骤相关推荐

  1. 何为数据库连接池?其工作原理是什么?

    连接池用于创建和管理数据库连接的缓冲池技术,缓冲池中的连接可以被任何需要他们的线程使用.当一个线程需要用JDBC对一个数据库操作时,将从池中请求一个连接.当这个连接使用完毕后,将返回到连接池中,等待为 ...

  2. 数据库连接池的实现及原理

    对于一个简单的数据库应用,由于对于数据库的访问不是很频繁.这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销.但是对于一个复杂的数据库应用,情况 ...

  3. 什么是连接池,其工作原理是什么?

    连接池用于创建和管理数据库连接的缓冲池技术,缓冲池中的连接可以被任何需要他们的线程使用.当一个线程需要用JDBC对一个数据库操作时,将从池中请求一个连接.当这个连接使用完毕后,将返回到连接池中,等待为 ...

  4. 数据库连接池的优点和原理

    数据库连接是非常宝贵的系统资源,连接一次数据库,底层程序需要经过很多步骤,花费比较多的时间,如果每次要操作数据库的时候才开始建立数据库连接,用完之后再关闭连接,势必造成程序的效率问题. 连接池的基本原 ...

  5. mysql连接池的原理_数据库连接池的实现及原理

    对于一个简单的数据库应用,由于对于数据库的访问不是很频繁.这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销.但是对于一个复杂的数据库应用,情况 ...

  6. 用了这么久的数据库连接池,你知道原理吗?

    作者:敦格 原文:https://blog.csdn.net/shuaihj/article/details/14223015 这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及 ...

  7. 【数据库连接池的好处及原理】

    数据库连接池是一个连接数据库的缓存池,用于管理和分配数据库连接对象.它的主要好处包括: 提高性能:数据库连接池可以在程序启动时预先建立一定数量的数据库连接对象,这些连接对象可以被多个线程共享,避免了频 ...

  8. JDBC系列(九):JDBC与数据库连接池(Druid-德鲁伊)使用步骤

    目录 1.导语(唠唠嗑~~~) 2.使用数据库连接池好处 3.Druid数据库连接池创建与使用步骤 3.1.创建连接池的步骤 3.2使用Druid数据库连接池的步骤 4.关闭资源与归还至连接池的一点说 ...

  9. 总结 - Ajax工作原理和实现步骤

    目录 一 Ajax技术与原理 1.1 Ajax简介 1.2 Ajax所包含的技术 1.3 Ajax的工作原理 1.4 XMLHttpRequest 对象的三个常用的属性 1. onreadystate ...

最新文章

  1. python文件打包成exe可执行文件
  2. ASP.NET MVC5+EF6+EasyUI 后台管理系统(46)-工作流设计-设计分支
  3. 哈尔滨工程大学计算机学院保研政策,哈尔滨工程大学计算机科学与技术学院(专业学位)计算机技术保研夏令营...
  4. SQL:判断字符类型是否为数字
  5. 【爬虫】beautiful soup笔记(待填坑)
  6. bzoj4919 大根堆
  7. java二叉树的深度优先遍历_二叉树的广度优先遍历、深度优先遍历的递归和非递归实现方式...
  8. Visual C++中的ODBC编程实例
  9. windows下SVN日志反馈中文乱码的解决方法
  10. python无法启动此程序因为_(python shell怎么用)为啥我按照python安装教程,总说无法启动此程序,因为计算机中丢失?...
  11. 【易语言界面开发系列教程之 (EX_UI使用系列教程--第10讲(EXui右键菜单演示案例))】
  12. java名片生成_HTML5 canvas绘图基础(电子名片生成器源码)
  13. 微信电脑版关掉截屏快捷键
  14. php如何除去图片水印,Phpcms v9如何去掉自带水印的解决方法
  15. 使用typedef定义数据类型
  16. TrafficMonitor:最好用的网速/内存/CPU监控软件
  17. NCB:神经元线粒体应激记忆可通过mtDNA水平升高跨代遗传
  18. oracle 省份三个字的,全国省市区县数据库-省份(全)
  19. Bmob关联Android,bmob-android-im-sdk
  20. BitmapFactory压缩图片

热门文章

  1. Linux·内核源码简单分析
  2. 换了新的JDK后,Eclipse打不开
  3. 犹豫许久还是在 CSDN(程序员之家) 开通了自己的第一个博客
  4. 产品经理也要懂ASO
  5. Windows 系统无法启动(错误代码:0xc000000e)的修复
  6. 【Linux系统开发】x210开发板根目录文件系统构建
  7. 08 - 文章详情页面
  8. Linux学习:用户和用户组管理(大量用户创建)
  9. n9006 android6,超详细三星Note3(N9006)ROOT教程
  10. 手机 9006 端口 不断的闪掉