Druid数据库连接池技术连接Mysql并操作数据库

使用到的软件及工具包

  1. IDEA 2019版本

  2. Mysql 8.0版本

  3. Mysql-connector-java-8.0.11(Mysql连接Java驱动)

  4. Druid-1.1.0

  5. 工具下载合集

    链接:https://pan.baidu.com/s/1g0D9m59nIT2Fq1aSJIxh8A
    提取码:66cq

步骤

  1. 创建数据库

    1. 创建一个数据库db2
    2. 在db2下创建一个user表
    3. 在user表中增加id, username, password 三条属性
    4. 插入若干条数据
      注:请自行用数据库操作软件如:navicat等完成上述建立数据库内容的操作
      操作结果如下:
      数据库
  2. 创建一个java项目JDBCDruid
    1. 新建包
    1. 新建一个包com.jdbc.druid
    2. 新建一个包com.jdbc.utils
    2. 新建类
    1. 在druid下新建一个class: DruidDemo
    2. 在utils下新建一个class: JDBCUtils

  3. 在项目路径下新建libs目录
    1. 导入mysql-connector-java-8.0.11.jar
    2. 导入druid-1.1.0.jar
    3. 选中两个文件,右键:add as library…

  4. 创建Druid配置文件:在src目录下创建 druid.properties,并加入如下内容

    driverClassName=com.mysql.cj.jdbc.Driver
    url=jdbc:mysql://localhost:3306/youDatabaseName?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&user=youUserName&password=youPassword
    initialSize=5
    maxActive=10
    maxWait=3000
    

    第二、三、四步的操作结果如下:
    在这里插入图片描述

  5. 编写代码

    1. JDBCUtils:

      package com.jdbc.utils;
      
      import com.alibaba.druid.pool.DruidDataSourceFactory;
      
      import javax.sql.DataSource;
      import java.io.IOException;
      import java.io.InputStream;
      import java.sql.Connection;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      import java.sql.Statement;
      import java.util.Properties;
      
      /**
       * druid数据库连接池工具类
       */
      public class JDBCUtils {
          // 1. 定义成员变量
          private  static DataSource ds;
          static {
              try {
                  //1. 加载配置文件druid.properties
                  Properties pro = new Properties();
                  InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
                  pro.load(is);
                  ds = DruidDataSourceFactory.createDataSource(pro);
      
              } catch (IOException e) {
                  e.printStackTrace();
              } catch (Exception e) {
                  e.printStackTrace();
              }
      
          }
      
          /**
           * 获取连接:直接从数据库连接池中获取连接
           * * 当连接池为空时返回null (ds.getConnection() = null)
           * @return Connection
           * @throws SQLException
           */
          public  static  Connection getConnection() throws SQLException {
              return  ds.getConnection();
          }
          /**
           * 释放资源方法, 此处重载调用三个参数的方法设置第一个参数为空即可
           * @param stmt
           * @param conn
           */
          public  static  void close(Statement stmt, Connection conn){
              close(null,stmt,conn);
          }
      
          /**
           * 释放资源方法, 注意:最后打开的对象应当最先关闭
           * Statement是prepereStatement对象这父类,这里使用父类对象引用指向子类对象
           * @param rs
           * @param stmt
           * @param conn
           */
          public  static  void close(ResultSet rs, Statement stmt, Connection conn){
              if(rs!=null){
                  try {
                      rs.close();
                  } catch (SQLException e) {
                      e.printStackTrace();
                  }
              }
              if(stmt!=null){
                  try {
                      stmt.close();
                  } catch (SQLException e) {
                      e.printStackTrace();
                  }
              }
              if(conn!=null){
                  try {
                      conn.close();
                  } catch (SQLException e) {
                      e.printStackTrace();
                  }
              }
          }
      
          public  static  DataSource getDataSourse(){
              return ds;
          }
      }
      
    2. DruidDemo:

      package com.jdbc.druid;
      
      import com.jdbc.utils.JDBCUtils;
      
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      
      /**、
       * 使用Druid数据库连接池实现的工具类
       */
      public class DruidDemo {
          public static void main(String[] args) {
              /*
               *完成数据库,给表user添加一条记录操作
               */
              Connection conn = null;
              PreparedStatement pstmt = null;
              try {
                  //1. 获取连接对象
                  conn = JDBCUtils.getConnection();
                  // 2. 定义sql,此处可自行尝试sql语句
                  String sql = "select  * from user ";
                  //3. 获取pstmt对象
                  pstmt = conn.prepareStatement(sql);
                  //4. 执行sql
                  /*  *注意: 
      	            select操作使用executeUpdate()执行,
      	            inset操作应该使用executeUpdate()执行
      	            */
                  ResultSet rs = pstmt.executeQuery();
                  while (rs.next()){
                      int id = rs.getInt(1);
                      String username = rs.getString(2);
                      String pwd = rs.getString(3);
                      System.out.println(id+"----"+username+"-----"+pwd);
                  }
              } catch (SQLException e) {
                  e.printStackTrace();
              }finally {
                  JDBCUtils.close(pstmt,conn);
              }
      
          }
      }
      
      

    运行结果示例:在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值