6.【数据库连接池工具类】

news/2024/5/18 21:49:33 标签: jdbc

搭建步骤

  1. 定义一个类
  2. 提供静态代码块加载配置文件,初始化连接池对象
  3. 提供方法
    • 获取连接方法:通过数据库连接池获取连接
    • 释放资源
    • 获取连接池的方法

代码:

package cn.luis.DataSource.util;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * @ClassName JDBCDataSourceUtil
 * @Description Druid连接池的工具类
 * @Author L
 * @Date 2020.01.18 21:20
 * @Version 1.0
 * @Remark TODO
 **/
public class JDBCDataSourceUtil {

    // 1.定义成员变量 DataSource
    private static DataSource ds;

    static {

        try {
            // 2.加载配置文件
            Properties pro = new Properties();
            pro.load(JDBCDataSourceUtil.class.getClassLoader().getResourceAsStream("druid.properties"));
            // 3.获取DataSource
            ds = DruidDataSourceFactory.createDataSource(pro);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /*
        获取连接
     */
    public static Connection getConnection() throws SQLException {
        return ds.getConnection();
    }

    /*
       释放资源
     */
    public static void close(Statement stmt, Connection conn) {
        close(null, stmt, 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 getDataSource() {
        return ds;
    }
}

练习

使用新的工具类,完成添加操作,给db3中的account表中添加一条记录

package cn.luis.DataSource.druid;

import cn.luis.utils.JDBCUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * @ClassName DruidDemo2
 * @Description 使用新的工具类
 * @Author L
 * @Date 2020.01.18 21:42
 * @Version 1.0
 * @Remark 完成添加操作,给db3中的account表中添加一条记录
 **/
public class DruidDemo2 {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstmt = null;

        try {
            // 1.获取连接
            conn = JDBCUtils.getConnection();
            // 2.定义sql
            String sql = "insert into account values(null,?,?)";
            // 3.获取pstmt对象
            pstmt = conn.prepareStatement(sql);
            // 4.赋值
            pstmt.setString(1,"gangtiexia");
            pstmt.setDouble(2,3000);
            // 5.执行sql
            int count = pstmt.executeUpdate();
            System.out.println(count);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 6.释放资源
            JDBCUtils.close(pstmt,conn);
        }

    }
}

结果:

1

http://www.niftyadmin.cn/n/1850135.html

相关文章

Semantic Analysis

http://www.semanticsearchart.com/research.html转载于:https://www.cnblogs.com/stoneresearch/archive/2012/06/09/4336309.html

7.【Spring JDBC】

Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象,用来简化JDBC的开发。 步骤 1. 导入jar包(5个) commons-logging-1.2.jar spring-beans-5.0.0.RELEASE.jar spring-core-5.0.0.RELEASE.jar spring-jdbc-5.0.0.RELEASE.jar spr…

C语言链接属性与extern、static关键字

标识符的链接属性决定如何处理在不同文件中出现的标识符,链接属性有三种:external(外部)、internal(内部)和none(无),没有链接属性的标识符(none)…

shell比较大小

自己测试的写下比较大小的脚本记录下定义a1b2if [ $a -eq $b ]; then echo "ab"; elif [ $a -gt $b ]; then echo "a>b"; elif [ $a -lt $b ]; then echo "a<b"; fi运行结果是a<b有个问题就是 if开头的[]&#xff0c;$a与[之间有空格&…

关键字、标识符、常量、变量

关键字、标识符、常量、变量、入门程序、数据类型转换、ASCII编码表 关键字 有特殊含义的、被保留的、不能随意使用的字符。 特点 完全小写的字母。如&#xff1a;public在编译器中有特殊颜色。 标识符 标识符&#xff1a;是指在程序中&#xff0c;我们自己定义内容。比如…

分享Silverlight/Windows8/WPF/WP7/HTML5周学习导读(6月4日-6月10日)

分享Silverlight/Windows8/WPF/WP7/HTML5周学习导读(6月4日-6月10日) 本周Silverlight学习资源更新 Silverlight的一个简单加载标志Loading... 温度 无法启动调试--未安装 Silverlight Developer 运行时。请安装一个匹配版本。 guo2008 Silverlight与JavaScript的交互 胡凡 Sil…

方法:调用、参数、返回值、重载

概念 基本格式 方法名称命名规则&#xff1a;和变量一样&#xff0c;使用小驼峰。 方法体&#xff1a;也就是大括号当中可以包含任意条语句。 public static void 方法名称() {方法体 }注意事项 方法定义的先后顺序无所谓。方法的定义不能产生嵌套包含关系。方法定义好了之…

exchange2010安装过程中的错误

摘要: 5 个项目。2 个成功&#xff0c;3 个失败。 已用时间: 00:00:45 组织先决条件 失败 错误: 需要为 Exchange Server 准备 Active Directory&#xff0c;并且此计算机上没有安装 Ldifde.exe。您必须通过运行“ServerManagerCmd -i RSAT-ADDS”来安 装…