使用DBUtils实现增删改查

问题遇到的现象和发生背景

又遇到一个无语的问题了
使用DBUtils实现增删改查的过程中插入操作完成了,接下来实现修改操作居然报错,这都是一模一样的啊,为什么啊,就是改了一个MySQL语句而已,书上都是这么写的

用代码块功能插入代码,请勿粘贴截图

插入操作

package cn.itcast.jdbc.dao;

import cn.itcast.jdbc.utils.C3p0Utils;
import org.apache.commons.dbutils.QueryRunner;

import java.sql.SQLException;

public class InsertDAO {
    public static void main(String[] args) throws SQLException {
        //创建QueryRunner对象
        QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
        String sql = "insert into user (name,password) values ('wangba','0000')";
        int num = runner.update(sql);
        if(num > 0){
            System.out.println("添加成功");
        }else {
            System.out.println("添加失败");
        }
    }
}


img

修改操作

package cn.itcast.jdbc.dao;

import cn.itcast.jdbc.utils.C3p0Utils;
import org.apache.commons.dbutils.QueryRunner;

import java.sql.SQLException;

public class UpdateDAO {
    public static void main(String[] args) throws SQLException {
        //创建QueryRunner对象
        QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
        String sql = "update user set name=mini where name=wangba";
        int num = runner.update(sql);
        if(num > 0){
            System.out.println("添加成功");
        }else {
            System.out.println("添加失败");
        }
    }
}


img

参数值是字符串的要用引号引起来,第12行:String sql = "update user set name='mini' where name='wangba'";

img

QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
String sql = "update user set name=?where name=?";
int num = runner.update(sql,new String[]{"mini","wangba"});