MySql && MySQL数据库 DbUtils工具类(五)

本文介绍DbUtils,ApacheCommons项目组提供的高效JDBC工具包,核心类QueryRunner简化了数据库CRUD操作,自动管理连接池,示例展示了如何使用DbUtils进行插入、查询、更新和删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DbUtils工具类

是Apache Commons 项目组提供的一个高效的JDBC代码开发工具包。

官网: http://commons.apache.org/proper/commons-dbutils/
在这里插入图片描述
核心类: QueryRunner

public static boolean save(Cart cart){
        //1. 核心对象 QueryRunner 是进行数据库操作的核心对象。
        // 它的带参数的 DataSource 构造方法,决定了将来它的所有操作,会自动从连接池中获取连接,且用完之后自动放回。 不需要我们操心。
        QueryRunner queryRunner = new QueryRunner(DataSourceUtils.getDataSource());


        int result = -1;

        //借助这个对象可以方便高效的进行 CRUD 操作。
        //今天用的全是方法中不带 Connection 参数的方法。
        //1. insert操作 -> update方法
        //sql 就是你要传递的insert 语句,参数用问号代替
        try {
            result =  queryRunner.update("insert into s_cart (name,price,total) values(?,?,?)",cart.getName(),cart.getPrice(),cart.getTotal());
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return result!=-1;
    }


    /**
      演示查询
     */
    public static Cart getById(int id){
        QueryRunner queryRunner = new QueryRunner(DataSourceUtils.getDataSource());
        //所有的select操作,使用query方法来进行
        //第二个参数 ResultSetHandler 是关键。
        //DbUtils工具类提供了 ResultSetHandler 接口的不同实现来应对不同的场景。
        // BeanHandler 用于将结果中的一行数据,映射到一个Java对象上。
        Cart cart = null;
        try {
            //注意: 这里的Cart 是通过反射来创建的。 意味着,我们必须保证它存在公共无参的构造方法。
            cart = queryRunner.query("select * from s_cart where id=?", new BeanHandler<Cart>(Cart.class), id);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return cart;
    }

    public static boolean update(Cart cart) {
        //1. 核心对象 QueryRunner 是进行数据库操作的核心对象。
        // 它的带参数的 DataSource 构造方法,决定了将来它的所有操作,会自动从连接池中获取连接,且用完之后自动放回。 不需要我们操心。
        QueryRunner queryRunner = new QueryRunner(DataSourceUtils.getDataSource());


        int result = -1;

        //借助这个对象可以方便高效的进行 CRUD 操作。
        //今天用的全是方法中不带 Connection 参数的方法。
        //1. update操作 -> update方法
        //sql 就是你要传递的update 语句,参数用问号代替
        try {
            result =  queryRunner.update("update s_cart set name=?,price=?,total=? where id=?",cart.getName(),cart.getPrice(),cart.getTotal(),cart.getId());
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return result!=-1;
    }


    public static boolean deleteById(int id) {
        //1. 核心对象 QueryRunner 是进行数据库操作的核心对象。
        // 它的带参数的 DataSource 构造方法,决定了将来它的所有操作,会自动从连接池中获取连接,且用完之后自动放回。 不需要我们操心。
        QueryRunner queryRunner = new QueryRunner(DataSourceUtils.getDataSource());


        int result = -1;

        //借助这个对象可以方便高效的进行 CRUD 操作。
        //今天用的全是方法中不带 Connection 参数的方法。
        //1. delete操作 -> update方法
        //sql 就是你要传递的delete语句,参数用问号代替
        try {
            result =  queryRunner.update("delete from  s_cart where id=?",id);
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return result!=-1;
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值