美文网首页
JDBC学习2

JDBC学习2

作者: 张氏小毛驴 | 来源:发表于2022-03-26 13:53 被阅读0次

一.数据库连接池

  1. 概念

    数据库连接池,其实就类似一个容器(集合),存放的是数据库连接(类比线程池)

    当系统初始化好后,会创建容器,然后申请一些连接对象,当用户需要访问数据库时,可以从容器中获取连接对象,使用完毕后再归还容器。

  2. 优点

    节约系统资源,能避免频繁的创建和销毁JDBC连接。

  3. 实现方式

    Java提供了一个标准的接口javax.sql.DataSource,但这仅仅只是一个接口,没有实现,因此我们要使用连接池,还必须选择一个JDBC连接池的实现。

    一般我们不用去实现连接池,由数据库厂商去实现,常用的连接池有:

    • C3P0
    • Druid
    1. 从性能方面比较:Druid>C3P0
    2. druid功能最为全面,sql拦截等功能,统计数据较为全面,具有良好的扩展性。
    3. 综合性能,扩展性等方面,一般考虑使用Druid
  4. 连接池的操作步骤

    • C3P0

      步骤:

      1. 导入jar包

        **c3p0-0.9.5.2.jar **

        mchange-commons-java-0.2.12.jar

      2. 定义配置文件

        文件名称:c3p0.properties或者c3p0-config.xml

        存放路径:直接放在src目录下即可

      3. 创建连接池实例(DataSource实例)

        DataSource ds = new ComboPooledDataSource();

      4. 获取连接对象

        Connection conn = ds.getConnection()

      public class C3P0Demo1 {
          public static void main(String[] args) throws SQLException {
              // 1. 创建数据库连接池对象
              DataSource ds = new ComboPooledDataSource();
              // 2. 获取连接对象
              Connection conn = ds.getConnection();
      
              System.out.println(conn);
              PreparedStatement pstate = conn.prepareStatement("select * from account");
              ResultSet rs = pstate.executeQuery();
              while (rs.next()) {
                  System.out.println(rs.getInt("id"));
                  System.out.println(rs.getString("name"));
                  System.out.println(rs.getDouble("balance"));
              }
              rs.close();
              pstate.close();
              conn.close();
          }
      }
      
    • Druid

      步骤:

      1. 导入jar包

        druid-1.0.9.jar

      2. 定义配置文件

        格式为properties的,名字可以是任意,路径也可以是任意

      3. 加载配置文件

        使用Properties集合类:

        Properties pro = new Properties();
        InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("druid.properties");
        pro.load(is);
        
      4. 获取连接池对象

        ds = DruidDataSourceFactory.createDataSource(pro);

      5. 获取连接对象

        conn = ds.getConnection();

      public class DruidDemo1 {
          public static void main(String[] args) throws Exception {
              Properties pro = new Properties();
              InputStream is = DruidDemo1.class.getClassLoader().getResourceAsStream("druid.properties");
              pro.load(is);
      
              // 获取连接池对象
              DataSource ds = DruidDataSourceFactory.createDataSource(pro);
              Connection conn = ds.getConnection();
      
              PreparedStatement pstate = conn.prepareStatement("select * from account");
              ResultSet rs = pstate.executeQuery();
              while (rs.next()) {
                  System.out.println(rs.getInt("id"));
                  System.out.println(rs.getString("name"));
                  System.out.println(rs.getDouble("balance"));
              }
              rs.close();
              pstate.close();
              conn.close();
          }
      }
      

相关文章

  • JDBC学习2

    一.数据库连接池 概念数据库连接池,其实就类似一个容器(集合),存放的是数据库连接(类比线程池)当系统初始化好后,...

  • JDBC和数据库连接池

    1.JDBC介绍1.1 1.1 JDBC介绍 2.JDBC之API2.1 2.1 JDBC之API 3.JDBC例...

  • JDBC 接口学习

    说明:文章所有内容皆选自实验楼教程【JDBC 入门教程】,想要学习更多JDBC,可以点击教程进行学习~ JDBC ...

  • # day10_JDBC基础

    一,JDBC概述 1.为什么要使用JDBC 1.1没有JDBC 1.2有了JDBC后 2.JDBC的概念 2.1....

  • Impala常见问题笔记

    kerberos下怎么jdbc链接(kerberos)?jdbc url的写法:jdbc:hive2://host...

  • Mysql&Jdbc学习笔记

    Mysql学习笔记(九) Mysql与JDBC Jdbc: Java database connectivity ...

  • java_JDBC

    1.JDBC是什么 2.JDBC本质 3.JDBC前期的准备工作 4.JDBC编程六步

  • JDBC数据库操作

    在学习之前我们首先了解一下什么是JDBC,JDBC有什么用。 JDBC是什么 JDBC(Java Data Bas...

  • jmeter连接oracle数据库

    1、添加JDBC Connection Configuration、jdbc request、查看结果树 2、填入...

  • JDBC

    JDBC总结: 1.jdbc入门 2.抽取工具类 3.jdbc与java代码联系的基本sql语句操作 4.JDBC...

网友评论

      本文标题:JDBC学习2

      本文链接:https://www.haomeiwen.com/subject/evqsjrtx.html