使用DBUtils简化JDBC操作MySQl(一)

本文介绍如何使用DbUtils库简化Java中MySQL数据库的操作过程,包括插入、更新和删除记录等常见操作。

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

之前我们使用JDBC对MySQL进行操作,但感觉JDBC相对比较繁琐今天我们使用dbutils对MySQL进行操作

在这之前我们需要做一些准备
1 .我们进行操作的数据表格(很随意的数据)

序号名称价格说明
1家电2000.0优惠
2家电23000.0优惠2
3家电34000.0优惠3
4家电45000.0优惠4
5汽车2000000.0不卖
7体育用品2222.222体育相关
可以看到这是一个商品的信息 我们可以根据这个表格写出一个类Sort
public class Sort {
    private int sid;
    private String sname;
    private double sprice;
    private String sdesc;
    public Sort(int sid, String sname, double sprice, String sdesc) {
        super();
        this.sid = sid;
        this.sname = sname;
        this.sprice = sprice;
        this.sdesc = sdesc;
    }
    public Sort() {
        super();
    }
    @Override
    public String toString() {
        return "Sort [sid=" + sid + ", sname=" + sname + ", sprice=" + sprice + ", sdesc=" + sdesc + "]";
    }
    public int getSid() {
        return sid;
    }
    public void setSid(int sid) {
        this.sid = sid;
    }
    public String getSname() {
        return sname;
    }
    public void setSname(String sname) {
        this.sname = sname;
    }
    public double getSprice() {
        return sprice;
    }
    public void setSprice(double sprice) {
        this.sprice = sprice;
    }
    public String getSdesc() {
        return sdesc;
    }
    public void setSdesc(String sdesc) {
        this.sdesc = sdesc;
    }

}

使用私有属性可以更加安全的让我们操作数据然后为每个属性添加get和set以及同String 而最终要的是要写一个空参的构造方法(之后我们会说到)

在之后我们可以使用之前写过的连接MySQL工具来连接获得Connection类的con
* 编写JDBC的工具类,获取数据库的连接
 * 采用读取配置文件
 * 读取配置文件,获取连接 执行一次    静态代码块 static{}
 */

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;

public class JDBCUtilsConfig {
    private static Connection con;
    private static String driverClass;
    private static String url;
    private static String username;
    private static String password;
    static {
        try {
            readConfig();
            Class.forName(driverClass); 
            con =DriverManager.getConnection(url, username, password);
        }catch (Exception ex){
            throw new RuntimeException("数据库连接失败");

        }
    }
    private static void readConfig() throws Exception {
        InputStream in=JDBCUtils.class.getClassLoader().getResourceAsStream("database.properties");
        Properties pro=new Properties();
        pro.load(in);
        driverClass=pro.getProperty("driverClass");
        url=pro.getProperty("url");
        username=pro.getProperty("username");
        password=pro.getProperty("password");
    }
    public static Connection getConnection() {
        return con;
    }
}

使用配置文件来配置会使之后的更改变得简单
在我的配置文件中是这样的

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybase
username=root
password=root

以键值对的形式来存储各个信息以方便更改数据库后或者更改账号密码时更方便地更改操作

上面就是我们的准备 下来要进入正题了 使用dbutils来操作

我们可以使用dbutils中的QueryRunner类来实现操作

import java.sql.Connection;
import java.sql.SQLException;

import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;

import c.c.Utils.JDBCUtilsConfig;
/*
 *   使用QueryRunner 类 实现对数据表的
 *   insert delete update
 *   调用QueryRunner 累的方法update(Connection con ,String sql,Object... param)
 *   Object..param  可变参数 ,Object 类型 SQL语句会出现?占位符
 * 
 *   数据库连接对象 自定义的工具类的传递
 */
public class QueryRunnerdemo {
    private static Connection con=JDBCUtilsConfig.getConnection();
    public static void main(String[] args) throws SQLException {
    //  insert();//添加数据
    //  update();//更新数据
    //  delete();//删除数据
    }
    /*
     * 定义方法 使用QueryRunner类的方法update 像数据表中添加数据
     */
    public static void insert() throws SQLException {
        //创建QueryRunner 对象 
        QueryRunner qu=new QueryRunner();
        String sql ="INSERT INTO sort(sname,sprice,sdesc)VALUES(?,?,?)";
        //将三个?占位符的实际参数,写在一个数组中
        Object[] params= {"体育用品",2222.222,"体育相关"};
        //调用QueryRunner累的方法update执行SQL语句
        int row=qu.update(con,sql,params);
        System.out.println(row);
        DbUtils.closeQuietly(con);

    }
    /*
     *  定义方法 使用QueryRunner累的方法update将数据表的数据修改
     */

    public static void update() throws SQLException {
        QueryRunner qu=new QueryRunner();
        String sql ="UPDATE sort SET sname=?,sprice=?,sdesc=? WHERE sid=6";
        Object[] param = {"更新1",66.5,"更新时"};
        int row=qu.update(con,sql, param);
        DbUtils.closeQuietly(con);
        System.out.println(row);
    }
    /*
     *  定义方法 使用QueryRunner类的方法delete将数据表的数据删除
     */
    public static void delete()throws SQLException{
        QueryRunner qu=new QueryRunner();
        String sql="DELETE FROM sort WHERE sid=?";
        int row= qu.update(con,sql,6);
        if(row>0) {
            System.out.println("true");
        }else {
            System.out.println("flase");
        }
        System.out.println(row);
        DbUtils.closeQuietly(con);
    }

}

对数据的查看在下一篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值