java连接池技术概括+dbutils使用方法

所需要包的下载
提取码:c17b

连接池概念

在这里插入图片描述

使用方法:

(1)在新建一个java project
(2)再在相应的project新建一个命名为lib的folder
(3)导入连接池所需的dbcp 的包和依赖包(build path)
在这里插入图片描述
(4)导入连接池的配置文件,新建一个source folder命名为config,再在此新建一个file命名为db.properties,添加内容为
在这里插入图片描述

#连接设置
driverClassName=com.mysql.cj.jdbc.Driver//加载驱动
url=jdbc:mysql://localhost:3306/demo?serverTimezone=UTC//url换成你对应的数据库url
username=root//数据库名称
password=root//数据库密码
#初始连接
initialSize=10
#最大连接数
maxActive=50
#最大空闲连接
maxIdle=20
#最小空闲连接
minIdle=5
# 等待超时单位毫秒
maxWait=60000

#  编码
connectionProperties=useUnicode=true;characterEncoding=utf8
# 自动提交
defaultAutoCommit=true
# 不只读 
defaultReadOnly=false
#  隔离级别
defaultTransactionIsolation=READ_UNCOMMITTED

使用连接池

public class DataSourceDemo {
	public static void main(String[] args) throws Exception {
		//1.读取配置文件
		Properties properties = new Properties();
		//存在缺陷 :硬编码
		//properties.load(new FileInputStream("config/db.properties"));
		//通过加载jvm的DataSourceDemo.class 去反向查找类加载器,在通过类加载器,去根据相对路径查(相对源码包)找指定的db.properties
		properties.load(DataSourceDemo.class.getClassLoader().getResourceAsStream("aa/db.properties"));
		//2.创建数据源(创建连接池)
		DataSource dataSource = BasicDataSourceFactory.createDataSource(properties);
		System.out.println(dataSource);
		//3.从数据源中获取一个连接
		Connection connection = dataSource.getConnection();
		System.out.println(connection);
		//4.关闭连接,讲连接还给连接池
		connection.close();
	}
}

使用jdbc的dbutils框架

原生的 jdbc 代码过于繁琐,重复代码过多;这里采用 Dbutils jdbc 框架解决这个问

(1):添加dbutils.jar包
在这里插入图片描述

定义一个DbUtils类添加代码,过程和上面的使用连接池技术类似,只不过添加了一个返回DataSource的方法

public class DbUtils {
	//1.定义数据源的属性
	private static DataSource dataSource;
	//2.加载配置文件
	private static Properties properties = new Properties();
	//3.在加载类的时候加载数据源
	static {
		try {
			properties.load(DataSourceDemo.class.getClassLoader().getResourceAsStream("db.properties"));
			dataSource = BasicDataSourceFactory.createDataSource(properties);
		} catch (Exception e) {	
			e.printStackTrace();
		}
	}
	//4.提供获取数据源的方法
	public static DataSource getDataSource() {
		return dataSource;
	}
}

再在调用dbutils方法进行数据库的增删改查

public class DbutilsDemo {
	//1.建立QueryRunner对象 
	private QueryRunner queryRunner = new QueryRunner(DbUtils.getDataSource());
	//2.测试添加方法
	@Test
	public void add() throws SQLException {
		queryRunner.update("insert into users(name,money) values(?,?)","小李",100);
	}
	@Test
	public void del() throws SQLException {
		queryRunner.update("delete from users where id=?",1);
	}
	@Test
	public void update() throws SQLException {
		queryRunner.update("update users set name=? where id=?","小红红",2);
	}
	@Test
	public void query() throws Exception {
		User user = queryRunner.query("select * from users where id=?",new BeanHandler<User>(User.class), 4);
		System.out.println(user);
	}
	@Test
	public void query2() throws Exception {
		List<User> list = queryRunner.query("select * from users",new BeanListHandler<User>(User.class));
		System.out.println(list);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值