JavaWeb之apache提供的开源类库:DbUtils
程序员文章站
2022-05-19 19:17:28
...
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);
}
}