C3P0与QueryRunner的结合使用

c3p0数据库连接池和QueryRunner类结合使用 文章目录c3p0数据库连接池和QueryRunner类结合使用导包写一个c3p0.properties文件创建ComboPooledDataSource数据源使用QueryRunner对象进行数据库操作 c3p0数据库连接池和QueryRunner类结合使用 导包 首先导入c3p0数据库连接池对应的包和QueryRunner类对应的包,如下图: 写一个c3p0.properties文件 使用c3p0数据库连接池,数据库的配置信息,如driver,url,user,password都可以通过c3p0.pro 阅读详情

依赖包

         c3p0-0.9.1.2.jar

        commons-dbutils-1.6.jar

        mysql-connector-java-5.1.12-bin.jar

C3P0的配置文件c3p0-config.xml

<c3p0-config>
    
    <!-- c3p0默认配置,下面还可以配置多个数据库 -->
    <default-config>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/test
        </property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="user">root</property>
        <property name="password">123456</property>
        <property name="initialPoolSize">6</property>
        <property name="maxPoolSize">50</property>
        <property name="maxIdleTime">1000</property>
    </default-config>

</c3p0-config>

BserUtils类,c3p0和QueryRunner的核心类

import java.sql.SQLException;
import java.util.List;

import javax.sql.DataSource;

import org.apache.commons.dbutils.QueryRunner;

import com.mchange.v2.c3p0.ComboPooledDataSource;


public class BaseUtils {

    //初始化c3p0
    private static DataSource dataSource=null;
    
    static{
        //自动加载src目录下面的c3p0的配置文件,【c3p0-config.xml】
        dataSource = new ComboPooledDataSource();
    }
    
    public static QueryRunner getQueryRunner(){
        //第一步:创建QueryRunner对象,传入连接池对象
        //在创建QueryRunner对象的时候,如果传入数据对象dataSource,
        //那么在使用QueryRunner对象的方法时候,就不需要传入连接对象
        QueryRunner query=new QueryRunner(dataSource);
        //第二步:会自动从数据源中获取连接(不用关闭连接)
        return query;
    }
    
    /***
     * 实现增删改的公共方法
     * @param sql
     * @param arr
     * @return
     */
    public static boolean addUpdateDelete(String sql,Object[] arr){
        QueryRunner qr=getQueryRunner();
        int count;
        try {
            count = qr.update(sql, arr);
            if(count>0){
                return true;
            }else{
                return false;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }
    
}

在DAO层调用BaseUtils

import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.dao.UserDao;
import com.entity.User;
import com.util.BaseUtils;


public class UserDaoImpl implements UserDao{


    @Override
    public List<User> selectUser() {
        //创建QueryRunner
        //记住查询是BeanListHandler区别增删改的方法BeanHandler
        QueryRunner qr=BaseUtils.getQueryRunner();
        try {
            String sql="select * from user ";           
            List<User> list =(List<User>)qr.query(sql, new BeanListHandler(User.class));
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }
    //如果没用c3p0连接池,而是普通连接方式则稍有变化
    @Override
    public List<User> selectUser() {
        //连接数据库
        Connection con = Conn.getConnection;//Conn类在下边
        QueryRunner qr=new QueryRunner();
        try {
            String sql="select * from user ";           
            List<User> list =(List<User>)qr.query(con,sql, new BeanListHandler(User.class));
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }


}

连接数据库

public class Conn{
    static Connection conn;
    public static Connection getConnection(){
    try{
        Class.forName("com.mysql.jdbc.Driver");
    }catch(ClassNotFoundException e){
        e.printStackTrace();
    }
    try{
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true","root","password");
    }catch(SQLException e){
        e.printStackTrace();
    }
    return conn;
    }
}

该文有部分内容从其他网站转载,加上自己的一些理解及日常应用整理至此

c3p0+QueryRunner jar包 c3p0+QueryRunner 对应的jar包 下载 亲测有效 c3p0+QueryRunner 对应的jar包 立即下载

相关推荐

采用事务、c3p0连接池配置、DBUtiles中的QueryRunner结合

采用事务、c3p0连接池配置、DBUtiles中的QueryRunner结合作为mysql数据库的插入一条数据

C3p0数据库连接池配置详解与数据库连接建立

C3p0数据库连接池配置详解,使用c3p0创建数据库连接对象

飞月程序人生 1万+

告别龟速!实测Copernicus Dataspace下载Sentinel-2数据的3个提速技巧(附Workspace批量操作)

本文分享了在Copernicus Dataspace平台高效下载Sentinel-2遥感数据的3个实用技巧,包括网络传输层优化、浏览器与API调优以及Workspace批量操作。通过这些方法,用户可将下载速度提升300%以上,特别适合科研人员和团队处理大规模数据需求。

weixin_30706691的博客 178

C3P0和QueryRunner

 C3P0:放一句骚话:      简单来说,C3P0连接池配置可以更NiuBi地让业务逻辑层和数据层打交道。使用C3P0的必要性:       使用传统的模式访问数据库,每次和数据库进行连接时都要将Connection加载到内存中,再验证用户名和密码。需要数据库连接的时候,就像数据库要求一个,执行完毕后再断开连接。这样的方式将会消耗大量的资源和时间。数据库的连接资源并没有得到很好的重复利用。若同...

a_cherry_blossoms的博客 1334

【AMD显卡在WIndow10/11部署带GPU支持的深度学习环境(Pytorch-DirectML篇)】

这篇是之前Tensorflow-DirectML的姊妹篇,如果对TF感兴趣的可以搜索我的博文。 首先我们丢一个官网地址,但是官网那个会误导新人如果你按那个操作的话。 https://docs.microsoft.com/en-us/windows/ai/directml/gpu-pytorch-windows 这里用我的方法操作: 首先声明一下,因为我的显卡是AMD RX6600,不带XT(性能和RTX3060 12G版本半斤八两),所以目前没有最新的WSL2驱动,如果有了的话欢迎告知我,所以我这里就.

weixin_44029053的博客 2万+

激光工程师必备:5个ABCDRez在谐振腔设计中的实战技巧(含热效应处理)

本文为激光工程师分享了5个利用ABCDRez矩阵光学工具进行谐振腔设计的实战技巧,重点涵盖热效应处理、模式匹配优化与稳定性分析。通过建立参数化模型、动态热透镜补偿、模式匹配仿真及灵敏度分析,帮助工程师实现从“黑箱”到“白盒”的腔体设计与调试,提升激光器设计的鲁棒性与效率。

k6l7m8n9的博客 707

c3p0与QueryRunner的结合使用

1.QueryRunner的作用: 其实这个是dbutils中的一个方法。什么是dbutils?它的出现就是封装了jdbc的代码,开发dao层代码的简单框架,使sql语句的执行代码变得更加简洁。 2.使用步骤: (1)导入commons-dbutils-1.7.jar包:https://pan.baidu.com/s/1A0Uhf0gg6666FTpnq-nd9g (2)在JDBCUtil...

liangliang6的博客 474

MTK Camera HAL 与 FeaturePipe 架构解析:从硬件抽象到功能管线的工程落地路径

MTK 的 Camera 系统在 Android 平台下采用高度模块化的 HAL 与 FeaturePipe 架构组合,分别承担着底层硬件抽象与上层功能封装的职责。通过将 ISP、3A 算法、Sensor 驱动与图像处理节点解耦封装于功能链条中,联发科平台实现了灵活可控的影像能力调度机制。本文将基于真实项目实践,系统解析 MTK Camera HAL 与 FeaturePipe 架构的设计思路、核心模块与运行机制,结合 AE/AWB/AF 控制流、Buffer 管理策略、功能管线构建方法与多线程调度实现方式

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1574

使用c3p0和QueryRunner实现基本的mvc

前言 在这些年的开发过程中,基本上都是直接使用ssh或者ssm框架,直接调用去实现业务功能。 最近在开源中国上看到一遍文章初学 Java Web 开发,请远离各种框架,从 Servlet 开发, 然后我开始反思, 好像离开了这些框架,忘了怎么去搭建一个基本后端链接,真的原生的web的知识了解的不是很深,从现在开始着手,说干就干, 知识点 c3p0 链接池 oracle commons-...

weixin_34104341的博客 177

【RH850/U2A】:HSM与APP通信(中断方式)

HSM与APP通信(中断方式)

1994

农业生产AI决策系统架构设计解密:数据层-模型层-应用层核心逻辑

想象一下,在一个炎热的夏日,传统农田里的农民伯伯正满头大汗地检查每一株玉米是否缺水;而几公里外的智慧农场里,一位年轻农民正在空调房里滑动手机屏幕,看着AI系统自动生成的灌溉计划——这就是农业生产AI决策系统带来的改变。本文的目的,就是要揭开这个"智能农业大脑"的面纱,详细讲解它的"身体构造"(架构设计)和"工作原理"(核心逻辑)。我们将聚焦系统最核心的三个部分:数据层(收集农田信息)、模型层(分析信息并思考决策)和应用层(将决策告诉农民)。

AI智能探索者的博客 1327

c3p0 参数 模糊查询_c3p0和QueryRunner的结合使用,让开发更加简便

1:DBUtils中的QueryRunner的使用:1.1:QueryRunner中提供了对SQL语句操作的api;1.2:主要有三个方法:1.2.1:query():用于执行select(查询);1.2.2:update():用于执行insert(插入)/update(更新)/delete(删除);1.2.3:batch():批处理;2:c3p0和QueryRunner的结合使用:2.1:首先导...

weixin_39882623的博客 380

pg lib的信息及产生pg lib的三种方法

pg lib相比basic lib会多几方面pg 信息。除了pg arc(pg pin)以外,liberty还提供电压值,以及pmk cell的power_down_function功能相关信息。1.电压值除了常见的primary pg还有secondary pg和衬底。2.pg arc后端需要去做redhawk功耗分析,需要pg liberty提供pg arc,如果没有pg arc就需要手动去写custom lib代替3.pmk cell的power_down_function。

m0_61544122的博客 595

c3p0和QueryRunner的结合使用,让开发更加简便

c3p0和QueryRunner的结合使用,让开发更加简便 1:DBUtils中的QueryRunner的使用:   1.1:QueryRunner中提供了对SQL语句操作的api;   1.2:主要有三个方法:     1.2.1:query():用于执行select(查询);     1.2.2:update():用于执行insert(...

HiterCoder 131

PCL 法向量夹角剔除错误匹配点对【2026最新版】

实现了一种简单的基于对应点法线角度的对应关系去除方法。博客长期更新,本文最新更新时间为:2026年5月24日。

点云侠的博客 41万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: git在不删除项目的基础上,想删除远程仓库多余的文件
下一篇: 谷歌浏览器上传附件失败的问题
AGI杂货铺
博客等级 码龄8年 83粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值