对JDBC的一系列封装(线程池)

JDBC(Java数据库连接)

  • 代码
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;



//数据库封装类
public class DBUtil {

	public static Connection conn = null;
	
	static Properties properties = new Properties();
	
	static BasicDataSource base = null;

 //	静态代码块,资源只加载一次,并且优先加载
	static {
		
		InputStream in =  DBUtil.class.getClassLoader().getResourceAsStream("db.properties");
		
		try {
			properties.load(in);
		
//		  创建数据源对象,连接池
			base = new BasicDataSource();
			base.setDriverClassName(properties.getProperty("driver"));
			base.setUrl(properties.getProperty("url"));
			base.setUsername(properties.getProperty("username"));
			base.setPassword(properties.getProperty("password"));
//		    初始化连接数
			base.setInitialSize(5);
//			最大激活量
			base.setMaxActive(10);
//			最小空闲数
			base.setMinIdle(3);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static Connection getConnection() {

		try {
			conn = base.getConnection();	
		} catch (SQLException e) {
			e.printStackTrace();
		}

		return conn;
	}

	
	 
	/*
	 * public static void main(String[] args) {
	 * 
	 * DBUtil util = new DBUtil(); System.out.print(util.getConnection());
	 * 
	 * }
	 */

}

Properties类

  • java.util.Properties是util工具包下的类
  • 是Java配置文件使用的类
  • java.util.Hashtable<Object,Object> 是它的直接父类
  • 线程安全的,多个线程可以共享一个Properties对象,而不需要外部同步
  • properties文件是以key=value 的 键值对的形式进行存储

db.properties文件配置
1.存放位置

在这里插入图片描述
2.此文件是将数据库连接需要的数据进行封装,便于修改和调用。

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/db_mytest?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
username=root
password=123456


BasicDataSource 类

  1. 为什么要创建连接池?
  • 用来管理多个Connection对象,这样可以重复使用,极大地解决了资源的循环利用问题
  • 而且当调用close方法并不会销毁或关闭连接,是归还给连接池
  1. 他是Tomcat的内置连接池
  2. 使用时要导入依赖
 <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
      </dependency>

      <dependency>
        <groupId>commons-pool</groupId>
        <artifactId>commons-pool</artifactId>
        <version>1.6</version>
      </dependency>

  • 常用方法
1.必须
          driverClassName      数据库驱动名称
       

                  url          数据库的地址

              username        用户名

             password       密码

2.可选

          initialSize      初始化连接
         
          maxActive       最大连接数量

         minIdle       最小空闲连接

         maxIdle       最大空闲连接
         
      


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值