使用Druid开源框架创建JDBC工具类

使用阿里开源的Druid连接池创建)

先导入druid的包,我把他放在了src/lib文件下了
在这里插入图片描述
这是Druid的下载地址点进去下载(文件失效了私信我,给你们重写弄)

导好包之后就要配置druid的文件了。

创建druid.properties文件。
driverClassName:获取数据库JDBC连接池驱动
url:你数据库的中,执行的是哪个表的操作(我的是test2表)
在这里插入图片描述
配置信息:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///test2
# 用户名
username=root
# 密码
password=root
# 初始化连接数
initialSize=5
# 最大连接数
maxActive=10
# 连接等待时间
maxWait=3000

接着创建druid的工具类

在这里插入图片描述
代码:

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 JDBCDruid {
    //抽取DataSource
   private static DataSource dataSource = null;
    static {//加载druid文件静态代码块
        try {
        Properties per = new Properties();
        ClassLoader classLoader = JDBCDruid.class.getClassLoader();
        InputStream resourceAsStream = classLoader.getResourceAsStream("druid.properties");
        per.load(resourceAsStream);
        dataSource = DruidDataSourceFactory.createDataSource(per);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static DataSource getDataSource(){//获取DataSource
        return dataSource;
    }

    public static Connection getConnection(){//获取Connection
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    public static void close(Connection conn, Statement state){//关闭Connection和Statement
        close(conn, state, null);//这里调用三个参数的重载数据,最后一个设置为null就可以了
    }
    //关闭Connection、Statement、ResultSet
    public static void close(Connection conn, Statement state, ResultSet result) {
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (result != null) {
            try {
                result.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

最后编写一个测试类来测试一下我们的工具类执行效果了:
在这里插入图片描述
测试代码:

import cn.JDBCDruid;
import org.junit.Test;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

public class Test1 {

    @Test
    public void test2() throws SQLException {
        DataSource dataSource = JDBCDruid.getDataSource();//使用工具类获取数据源
        Connection con = dataSource.getConnection();//从数据源中连接到Connection接口
        String sql = " select * from money";//SQL语句
        PreparedStatement pre = con.prepareStatement(sql);//连接SQL语句对象
        ResultSet resultSet = pre.executeQuery();//执行SQL语句
        while (resultSet.next()) {//指针向后移一位
            int id = resultSet.getInt(1);//获取id
            String name = resultSet.getString(2);//获取name
            String salary = resultSet.getString(3);//获取salary
            System.out.println(id+" "+name+" "+salary);//输入结果
        }
    }

这是数据库查询之后得到的结果

1 zhangsan 500
2 lisi 2000
5 xiaoming 9000
6 xiaohong 9000
7 boss 100

得到这个结果就说明我们的JDBC连接池创建成功了。
JDBC不止可以查询操作,还可以(select delete insert)这要自己去举一反三了。

总结:

写这篇文章的时候,是在学Mybatis的时候,突然想到的,看看自己是否还记得JDBCDruid的工具类的使用。忘记,这是我们学习中一大问题,就是你学了之后,一段时间不用,就会忘记。我们只有不断反复的练习,才能记住其中的知识点。我也是忘了很多java基础的一些东西(比如学的Sever socket,流序列化和反序列化)。所有让我们一起努力吧,虽然很狼狈,但是解决问题的那一刻你很帅,不是吗?(* ̄︶ ̄)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值