Druid连接池的工具类

Druid连接池的工具类

package com.lzcu.utils;


import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;

/**
 * Druid连接池的工具类
 *
 * 1. 定义一个类 JDBCUtils
 * 2. 提供静态代码块加载配置文件,初始化连接池对象
 * 3. 提供方法
 * (1). 获取连接方法:通过数据库连接池获取连接
 * (2). 释放资源
 * (3). 获取连接池的方法
 */
public class JDBCUtils {

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

	static {
		try {
			//  2.加载配置文件
			Properties pro = new Properties();
			pro.load( JDBCUtils.class.getClassLoader().getResourceAsStream( "druid.properties" ) );

			//  3.获取DataSource
			ds= DruidDataSourceFactory.createDataSource( pro );

		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 获取连接池方法
	 */
	public static DataSource getDataSource(){
		return ds;
	}

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

	/**
	 * 释放资源
	 */
	public static void close(Statement stat, Connection conn){
		close(null,stat,conn);
	}

	public static void close(ResultSet rs, Statement stat, Connection conn) {
		if (rs != null) {
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		if (stat != null) {
			try {
				stat.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

druid.properties配置文件

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///lzcucaaes
username=root
password=wsl123
# 初始化连接数量
initialSize=5
maxActive=10
maxWait=3000

编写测试类进行测试验证

import com.lzcu.pojo.Student;
import com.lzcu.utils.JDBCUtils;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

/**
 * Created by wangshilin on 2020/3/22
 */
public class databasetest {
	public static void main(String[] args) {
		JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
		String sql = "select * from lzcucaaes.student";

		List<Student> students = jdbcTemplate.query(sql, new RowMapper<Student>() {

			public Student mapRow(ResultSet resultSet, int i) throws SQLException {
				Student student = new Student();
				student.setStu_id(resultSet.getString("stu_id"));
				student.setStu_name(resultSet.getString("stu_name"));
				student.setSex(resultSet.getString("sex"));
				student.setClass_id(resultSet.getString("class_id"));
				student.setRole_id(resultSet.getInt("role_id"));
				student.setPassword(resultSet.getString("password"));
				return student;
			}
		});

		for (Student student : students) {
			System.out.println(student);
		}
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值