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"; List<User> users = qr.query(sql,new BeanListHandler<User>(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>(Product.class) --> Proudct - BeanListHandler:将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中 - BeanListHandler<Product>(Product.class) --> List<Product> - ScalarHandler:它是用于单数据。例如select count(*) from 表操作。 - ScalarHandler<Long>() --> Long - ColumnListHandler:将结果集中指定的列的字段值,封装到一个List集合中 - ColumnListHandler<String>("pname") --> List<String>