JavaWeb之apache提供的开源类库:DbUtils

本文介绍了在JavaWeb开发中如何结合DbUtils和Druid连接池进行数据库操作。首先,需要导入Druid及DbUtils的jar包。接着,通过QueryRunner和ResultSetHandler接口的实现,如BeanHandler和BeanListHandler,来处理查询结果。具体步骤包括导入相关库,创建QueryRunner对象,并使用不同的Handler处理查询数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DbUtils与之前一样,此工具类需要Druid连接池的支持,也需要导入jar包,
Druid连接池的jar之前有提及:
Druid连接池:Druid
此外还需要它特有的jar包:
commons-dbutils-1.7.jar
链接:commons-dbutils-1.7.jar
提取码:8l87

步骤:

1)导入包
2)执行对象:

QueryRunner

ResultSetHandler:处理程序 接口
实现类
1)需要将查询某条记录封装成对象 :BeanHandler<?>
2) 需要将查询的多条记录(查询所有)封装List集合对象:BeanListHandler<?>
3)查询的单行单列的数据:查询总记录数/…ScalarHandler<>

废话不多说,直接上需求!!!!

具体参考Druid:Druid
1)druid.properties

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mydb_05
username=root
password=123456
initialSize=5
maxActive=10
maxWait=3000

2)

package com.qf.utils;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;

/**
 * 封装工具类
 * 
 * 	1)使用连接池获取连接对象 ----Druid连接池
 * 		DruidDataSourceFactory.createDataSource(Properties prop)--->javax.sql.DataSource
 * 
 * 	2)封装获取连接的方法
 * 	  mygetConnection()-----DataSource对象可以调用getConnection()
 * 	3)释放资源
 * 	...
 *   
 * 	
 * @author zhangyang
 *
 */
public class MyJdbcUtils {
	
	
	
	//成员位置声明
	private static DruidDataSource ds ; //直接使用具体的子实现类:DruidDataSource
	private MyJdbcUtils() {}
	
	static {
		try {
			//创建一个属性集合类对象
			Properties prop = new Properties() ;
			//读取druid.properties 核心配置文件
			InputStream inputStream = MyJdbcUtils.class.
						getClassLoader().getResourceAsStream("druid.properties") ;
			
			//加载到prop
			prop.load(inputStream);
			//通过Druid连接池提供 的工厂类创建物理数据源DataSource
			ds = (DruidDataSource) DruidDataSourceFactory.createDataSource(prop) ;
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	
	//获取数据库连接
	public static Connection getConnection() {
		Connection conn = null ;
		try {
			conn = ds.getConnection() ;
			return conn ;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null ;
	}
	
	//获取DataSource的方法
	public static DataSource getDataSource() {
		return ds; 
	}
	
	//释放资源的方法
	public static void close(ResultSet rs,PreparedStatement stmt,Connection conn) {
		
		if(rs!=null) {
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if(stmt!=null) {
			try {
				stmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	
	public static void close(PreparedStatement stmt,Connection conn) {
		close(null, stmt, conn);
	}
	
	//开启事务
	
	/*
	public static void startTransaction(Connection conn) {
		if(conn!=null) {
			try {
				conn.setAutoCommit(false);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	*/
public static void main(String[] args) {
		DataSource ds = MyJdbcUtils.getDataSource() ;
		System.out.println(ds);
		Connection conn = MyJdbcUtils.getConnection() ;
		System.out.println(conn);
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值