Druid是什么?
druid德鲁伊是阿里开源的一个连接池,是国内性能最高的连接池。源码地址:
https://github.com/alibaba/druid
DButils是什么?
dbutils是一个jdbc的工具,主要用来简化jdbc的代码。源码地址:
http://commons.apache.org/proper/commons-dbutils/
druid连接池工具抽取:
下载jar包:druid-1.0.26.jar,这里使用1.0.26为例子!
下载DButils的jar包:commons-dbutils-1.6.jar,这里使用1.6版本为例子!
创建配置文件:driver.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=root
创建工具类DruidUtil类
public class DriverUtil{
private static String driverClassName;
private static String url;
private static String username;
private static String password;
public static DataSource dataSource;
InputStream input = null;
static{
try{
input = DriverUtil.class.getClassLoader().getResourceAsStream("druid.properties");
Properties properties = new Properties();
properties.load(input);
//创建连接池
dataSource = DruidDataSourceFactory.createDateDataSource(properties);
} catch (Exception e){
e.printStackTrace();
}
}
//获取dataSource数据源
public static DataSource getDataSource(){
return dataSource;
}
//获取connection连接
public static Connection getConnection(){
Connection connection = dataSource.getConnection();
return connection;
}
//关闭连接(将数据源还给连接池)
public static void close(ResultSet resultSet,Statement statement,Connection connection){
if(resultSet != null){
resultSet = null;
}
if(statement != null){
statement = null;
}
if(connection != null){
connection = null;
}
}
}
测试查询所有数据:
public class DruidTest{
@Test
public void select(){
QueryRunner qr = new QueryRunner(DruidUtil.getDataSource());
String sql = "select * from user";
Listusers = qr.query(sql,new BeanListHandler(User.class));
for(User user : users){
System.out.println(user);
}
}
}
DbUtil有三个功能:
QueryRunner中提供对sql语句操作的API.
ResultSetHandler接口,用于定义select操作后,怎么封装结果集。
DbUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法。
QueryRunner核心类介绍
1.提供数据源
构造方法:QueryRunner(DataSource)创建核心类,并提供数据源,内部自己维护Connection
普通方法:
1.update(String sql,Object ...params)执行DML语句
2.query(String sql,ResultSetHandler,Object ...parames)执行DQL语句,并将查询结果封装到对象中。
2.提供连接
沟通方法:QueryRunner(),创建核心类,没有提供数据源,在进行具体操作时,需要手动提供Connection
普通方法:
1.update(Connection connection,String sql,Object ...params)使用提供Connection,完成DML语句。
2.query(Connection connection,String sql,ResultSetHandler,Object ...params)使用提供的Connection,执行DQL.
DbUtils常用的类与方法:
DBUtils常用类与方法
- QueryRunner构造方法
- QueryRunner(DataSource) 创建核心类,并提供数据源,内部自己维护Connection
- QueryRunner() 创建核心类,没有提供数据源,在进行具体操作时,需要手动提供Connection
- QueryRunner 用来执行SQL语句对象
- update(String sql , Object ... params) 执行DML语句
- update(Connection conn, String sql, Object… params)插入表记录、更新表记录、删除表记录
- query(String sql , ResultSetHandler , Object ... params) 执行DQL语句,并将查询结果封装到对象中。
- query(Connection conn, String sql, ResultSetHandler handler, Object… params) 查询表记录
- ResultSetHandler 处理结果集的对象
- BeanHandler:将结果集中第一条记录封装到一个指定的javaBean中。
- BeanHandler(Product.class) --> Proudct
- BeanListHandler:将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中
- BeanListHandler(Product.class) --> List- ScalarHandler:它是用于单数据。例如select count(*) from 表操作。
- ScalarHandler() --> Long
- ColumnListHandler:将结果集中指定的列的字段值,封装到一个List集合中
- ColumnListHandler("pname") --> List