通过连接池与数据源建立数据库连接

数据源作为DriverManager的替代,提供数据库连接并优化管理。通过连接池,程序可从池中获取和归还连接,避免频繁创建和关闭。数据源配置分为局部和全局,局部数据源适用于特定应用,而全局数据源可供所有应用使用。配置涉及context.xml文件,并需注意不同版本的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    数据源可以获得数据库连接,是DriverManager工具的一个替代,通常数据源是从连接池中获得的连接对象。当程序需要连接对象时从数据池中取出一个,当连接对象用完毕将其放回连接池,从而避免每次都需要申请。

    所以抽重点,传统的链接数据库每次访问都需要加载驱动器,然后连接,一大堆代码重复使用,当需要更改的时候,需要一个个更改,而对于数据池的连接方式,需要更改的时候只需要更改数据源文件。

 

贴别注意!!!不同版本的连接会有些改变,如果出问题不要慌。

 

数据源文件分为两类:

第一类:配置局部数据源

    局部数据源只能被定义数据源的应用程序中使用。

    在Web应用程序中建立一个META-INF目录,在其中建立一个context.xml文件。

<?xml version="1.0" encoding="utf-8"?>
<Context reloadable = "true">
<Resource
      name="jdbc/sampleDS"                   //数据源名
      type="javax.sql.DataSource"            //指定该资源的类型
      maxActive="4"                          //同时活动连接实例的最大数
      maxIdle="2"                            //可空闲的最大连接数
      username="root"                        //数据库用户名
      maxWait="5000"                         //在没有可用连接的情况下,抛出异常前等待的最大毫秒数
      driverClassName="com.mysql.jdbc.Driver"  //使用的JDBC驱动程序完整的类名
      password="123"                          //数据库密码
      url="jdbc:mysql://localhost:3306/mydata"/>   //传递给JDBC驱动程序的数据库URL
</Context>

    建立好之后怎么调用呢?

Context context = new InitialContext();
DataSource ds =  (DataSource)context.lookup("java:comp/env/jdbc/sampleDS");

Connection dbconn = dataSource.getConnection();

第二类:配置全局数据源

    全局数据源可被所有应用程序使用

    1.首先通过<tomcat-install>/conf/server.xml文件的<GlobalNamingResources>定义,代码如下:

<Resource
      name="jdbc/paipai"                   //数据源名
      type="javax.sql.DataSource"            //指定该资源的类型
      maxActive="4"                          //同时活动连接实例的最大数
      maxIdle="2"                            //可空闲的最大连接数
      username="root"                        //数据库用户名
      maxWait="5000"                         //在没有可用连接的情况下,抛出异常前等待的最大毫秒数
      driverClassName="com.mysql.jdbc.Driver"  //使用的JDBC驱动程序完整的类名
      password="123"                          //数据库密码
      url="jdbc:mysql://localhost:3306/mydata"   //传递给JDBC驱动程序的数据库URL
/>

    2.然后在Web应用程序中建立一个META-INF目录,在其中建立一个context.xml文件。

<?xml version="1.0" encoding="utf-8"?>
<Context reloadable = "true">
  <ResourceLink
    global = "jdbc/paipai"     //指定在全局JNDI环境中所定义的全局资源名
    name = "jdbc/sampleDS"     //指定数据源名
    type = "javax.sql.DataSource"/>   //资源类型
<WatchedResource> WEB-INF/web.xml </WatchedResource>
</Context>

调用方式同上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值