Druid数据库连接池

news/2024/5/19 0:01:39 标签: jdbc, 连接池, 数据库, mysql

Druid数据库连接池

  • 前言
  • 一、Druid需要的jar包
  • 二、Druid的配置文件
  • 三、Druid工具类库
  • 四、使用工具类的实例
  • 总结


前言

数据库连接池(包括需要的jar包、用Druid写的工具类,使用Druid工具类实现的JDBC操作)

一、Druid需要的jar包

在这里插入图片描述
在这里插入图片描述

二、Druid的配置文件

druid.properties

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test
username=li
password=123456
initialSize=5
maxActive=10
maxWait=3000

三、Druid工具类库

package 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;

public class JDBCUtils {
    //定义成员变量
    private static DataSource ds;
    static {
        try {
            Properties pro = new Properties();
            pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
            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(stmt != null)
        {
            try {
                stmt.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(rs!=null)
        {
            try {
                rs.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
    /**
     * 获取数据连接池
     */
    public static DataSource getDataSource(){
        return ds;
    }
}

四、使用工具类的实例

package datasource.druid;

import utils.JDBCUtils;

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

public class druidDemo1 {
    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,"liuliu");
            pstmt.setDouble(2,3000);
            //5、执行sql
            int count = pstmt.executeUpdate();
            System.out.println(count);

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            //6、释放资源
            JDBCUtils.close(pstmt,conn);
        }

    }
}

总结

这是一个Druid的实例,都是可运行的,供自己以后回顾。


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

相关文章

C常见笔试题(一)

一.strcat、strcpy、strcmp、strlen函数的实现1实现strcat函数格式:extern char *strcat(char *dest,char *src);功能:把src所指字符串添加到dest结尾处并添加\0;返回:指向dest的指针。实现:char *Mystrcat(char*dest,…

Spring的JavaBean处理null字段

Spring的JavaBean处理null字段前言一、产生这种问题的原因二、解决方法一、修改实体类字段名的属性值二、重载JavaBean类方法总结前言 今天遇到一个问题,在用Spring框架提供的JavaBean方法时(将数据库查询的内容封装自己写的实体类的时候)&a…

攻城师们,你懂女孩子么?

[b][colorgreen][sizelarge]相信还有不少的同行程序员,都是单身贵族,那么问题来了,年关逼近,是否有来自父母催婚的压力呢? 是否有打算过年回家相亲的计划呢?是否还有找不到女朋友的种种感慨么?是…

IDEA的一些玄学问题

IDEA的一些玄学问题前言玄学问题一、IDEA下载文件找不到二、resource资源文件的xml找不到三、mybaits在使用(Mapper.方法名)找不到Mapper四、重载java与数据库类型转化方法时出现的注册不上的问题总结前言 当很多人看到这个标题的时候,是不是…

ElasticSearch入门介绍之安装部署(二)

散仙,在上篇文章对ElasticSearch整体入门作了个介绍,那么本篇我们来看下,如何安装,部署es,以及如何安装es的几个比较常用的插件. es的安装和部署,是非常简单方便的,至少这一点散仙在es和solr之…

C常见笔试题(二)

第一章C语言常见问题 1.1关作键字static的用 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: 1)在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变(该变量存放在静态变量区&…

Mybatis多表查询的操作(注解开发)

Mybatis多表查询前言一、java目录结构二、配置文件pom.xml三、核心配置文件sqmMapConfig.xml四、实体类五、接口类六、测试类七、数据库总结前言 前面介绍过Mybatis的基本操作,这里只整理Mybatis的多表查询的操作,这里介绍注解开发的mybatis操作&#x…

Apache Pig如何自定义UDF函数?

[b][colorgreen][sizelarge]近日由于工作所需,需要使用到Pig来分析线上的搜索日志数据,散仙本打算使用hive来分析的,但由于种种原因,没有用成,而Pig(pig0.12-cdh)散仙一直没有接触过&#xff0c…