JDBC高级应用 - 数据源(连接池)

##数据源(连接池)

(1)我们之前使用JDBC进行数据库访问时,首先是获得一个JDBC连接,执行增删改查操作后,关闭数据库连接。
(2)但是我们使用的resultset、statement、conncetion在创建和关闭时都需要耗费较多时间,而且占用资源。特别是在企业级应用中,一般是很多人同时访问,如果每个人访问都给他们建立一个新的连接,并在使用完后又关闭,如果一个连接的建立和关闭以0.1秒计算,则1000个人就是100秒,如果是要承载上千万人同时访问的sina网站呢。
因此JDBC可以应对小型应用程序,如果是企业级的开发,则需要更加高效的方式。
(3)数据库连接池就是一种解决方案。
首先在程序启动时,我们就生成一些连接,如果有用户请求到来,则直接使用这些连接,使用完后,再放回池中,这就节省了生成连接和关闭连接时要使用的时间。

企业级开发对Model层的要求:

完成对数据库的CRUD操作
能够处理数据库发生的各种错误 可以灵活的修改配置
提供方便使用的工具

高性能要求高效、稳健的数据访问层,传统的JDBC已经无法满足需求,那怎么办呢?

##使用数据源(连接池)

定义:Data Source,也称为连接池(DBCP, Database Connection Pool)
要操作数据库时,不是直接创建Connection,而是向连接池中“申请”一个Connection。如果连接池中空闲的Connection,则返回该Connection,否则创建新的Connection。使用完毕,程序“释放”该Connection,连接池会多次调用该Connection,并交付其他的线程使用,达到减少创建、断开连接次数的目的。

##数据源(DataSource)

javax.sql.DataSource接口负责建立与数据库的连接
从Tomcat的数据源获得连接
把连接保存在连接池中
连接池是由容器提供的,用来管理池中连接对象

注意:若连接池中已经有几个连接了,应用程序直接从连接池中获得空闲的连接,然后进行数据库访问,得到访问结果,并把连接放回池中。

如何获得DataSource对象
数据源由Tomcat提供,不能在程序中创建实例
使用JNDI获得DataSource引用

##什么是JNDI

JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API
javax.namming.Context接口的lookup()方法

####使用JNDI获取连接对象

//使用JNDI和数据源要导入的包
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class TitlesBean {
   public List getTitles() {
      try {
        //通过Context、DataSource获取Connection对象

        Context ic = new InitialContext();
  
        DataSource source =(DataSource)ic.lookup("java:comp/env/jdbc/books");
       
        Connection connection = source.getConnection();
   
        titlesQuery = connection.prepareStatement("SELECT *  FROM titles ");
   
        ResultSet results = titlesQuery.executeQuery();	
   
        //为BookBean对象的属性赋值,并添加到titlesList中             
          } catch (SQLException exception) {
                 exception.printStackTrace();
         }catch (NamingException namingException)      
                   namingException.printStackTrace();
        }finally{   
            closeConn();  
       }
   }  
 }

##JNDI的配置
####Tomcat的conf/context.xml中的配置
这里写图片描述
这里写图片描述

加入数据库驱动文件
把数据库驱动的.jar文件,加入到Tomcat的lib中
应用程序的web.xml文件的配置
在web.xml中配置
这里写图片描述

更多学习资讯,学习源码,请在耶宇星球领取

更多学习资讯,学习源码,请在耶宇星球领取
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北顾丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值