jdbc操作数据库(使用连接池技术)查询封装结果

本文详细介绍了数据库连接池的概念及其在提升程序执行效率方面的作用,对比了DruidDataSource和C3P0两种连接池的配置方法,并深入探讨了DButils工具类中的QueryRunner组件,包括其使用方式及多种ResultSetHandler的实现。
摘要由CSDN通过智能技术生成
连接池(DataSource)
    目的是为了节省创建连接和销毁连接所需要花费的时间 提高程序的执行效率
    
    DruidDataSource
        创建连接池对象
            1:
                DruidDataSource d = new DruidDataSource();
                d.setDriverClassName();
                d.setUrl()
                d.setUserName()
                d.setPassword()
            2:    准备一个db.properties    
                Properties p = new Properties();
                p.load("src/db.properties"):
                DruidDataSource d = DruidDataSourceFactory.createDataSource(p);
    C3P0
            1:
                ComboPooledDataSource d = new ComboPooledDataSource();
                d.setDriveClass()
                d.setJdbcUrl()
                d.setUser()
                d.setPassword()
                
            2:    在src下面 准备c3p0-config.xml
                ComboPooledDataSource d = new ComboPooledDataSource();
                ComboPooledDataSource d = new ComboPooledDataSource(String DataSource);
 
DButils工具类
            QueryRunner
                QueryRunner()        需要事务管理
                QueryRunner(DataSource ds)    不需要事务管理
                
 
                //可以实现增删改操作
                update(String sql,Object...params)
                update(Connection conn,String sql,Object...params)
                
                //实现查询操作
                query(String sql,ResultSetHandler rs,Object...params)
                query(Connection conn,String sql,ResultSetHandler rs,Object...params)
                
                ResultSetHandler是一个接口 该接口中有一个抽象方法handle()
                作业:自定义实现类实现ResultSetHandler接口并重写其handle方法(方法体的实现参看下午demo1)
                
                ArrayHandler        把每条表记录封装到一个Object数组中
                ArrayListHandler    把每条表记录封装到一个Object数组中 再把所有数组放入list集合中
                
                BeanHandler            把每条表记录的字段封装到指定类型的属性上
                BeanListHandler        把每条表记录的字段封装到指定类型的属性上 并且把多个该类型的对象放入list集合中
                
                MapHandler            把每条表记录的字段名和字段值放入到Map集合中
                MapListHandler        把每条表记录的字段名和字段值放入到Map集合中 再把所有的Map集合封装到List集合中
                
                //了解
                columnListHandler    封装指定列的查询记录
                scalarHandler        查询单值记录
                keyedHandler        把查询到的每条记录放入Map集合中 再把该Map集合放入外层Map集合的value位置 key是指定列名称

转载于:https://www.cnblogs.com/BaiChunLong/p/11385662.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值