博主:IrvingTc

update()方法实现增删改

       QueryRunnerupdate方法 update(Connection conn, String sql, Object... params)能够实现对表中数据的增删改,返回int类型的数值,表示对数据表影响的行数。conn为传入的Connection连接对象,sql为要执行的sql语句,Object... paramssql中的占位符添加参数,可以传入一个Object数组或者直接传入参数。

增加操作

//QueryRunner的insert()方法
    public static void insert() throws SQLException{
        //创建queryrunner对象
        QueryRunner queryRunner = new QueryRunner();
        String sql = "INSERT INTO goods_class (gcname,gcdescribe)VALUES(?,?)";
        //创建object数组
        Object[] params = {"张三","李四"};
        //执行queryrunner的插入方法
        int row = queryRunner.update(connection, sql, params);
    }

删除操作

//QueryRunner的delete()方法
    public static void delete() throws SQLException {
            //创建queryrunner对象
            QueryRunner queryRunner = new QueryRunner();
            String sql = "delete from goods_class where gcid = ?";
            int row = queryRunner.update(connection, sql, 6);
    }

修改操作

//QueryRunner的update()方法
public static void update() throws SQLException {
        //创建queryrunner对象
        QueryRunner queryRunner = new QueryRunner();
        String sql = "UPDATE goods_class SET gcname=? WHERE gcid=?";
        //创建object数组
        Object[] params = {"王五",6};
        int row = queryRunner.update(connection, sql, params);
}

query()方法实现查询

QueryRunner中的query方法query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params)能够对数据表中的数据进行查询,返回一个结果集,在不同的情况下可以使用不同的结果集。conn为传入的Connection连接对象,sql为要执行的sql语句,Object... paramssql中的占位符添加参数,可以传入一个Object数组或者直接传入参数,ResultSetHandler<T> 为返回的结果集类型。

  • ArrayHandler       返回一个对象数组,这个对象数组包含查询结果的第一行数据。可用于查询某一行数据。
public static void arrayHandler() throws SQLException {
        //1.创建queryrunner对象
        QueryRunner queryRunner = new QueryRunner();
        String sql = "SELECT * FROM goods_class";
        //调用queryrunner的query查询方法
        Object[] result = queryRunner.query(connection, sql, new ArrayHandler());
        for(Object obj:result) {
            System.out.print(obj + " ");
        }
    }
  • ArrayListHandler       返回所有的对象数组,每一个对象数组包含一行的数据,并装入列表中。

  • public static void arrayListHandlder() throws SQLException{
            //1.创建queryrunner对象
            QueryRunner queryRunner = new QueryRunner();
            String sql = "SELECT * FROM goods_class";
            //调用queryrunner的query查询方法
            List<Object[]> result = queryRunner.query(connection, sql, new ArrayListHandler());
            for(Object[] objects:result) {
                for(Object object:objects) {
                    System.out.print(object + "\t");
                }
                System.out.println();
            }
        }


  • BeanHandler       返回一个类实例对象,运用这个方法时,要先创建一个类,在这个类创建数据表中列名字段,并提供getset方法,必须提供无参构造器。该类实例对象的字段数据为查询数据的第一行数据。传入形参为改类的类加载器。可用于查询某一行数据。

  • public static void beanHandler() throws SQLException {
            //1.创建queryrunner对象
            QueryRunner queryRunner = new QueryRunner();
            String sql = "SELECT * FROM goods_class";
            //调用queryrunner的query查询方法
            Good_class gc = queryRunner.query(connection, sql, new BeanHandler<Good_class>(Good_class.class));


  • BeanListHandler       返回所有类实例对象,并将这些对象装入列表中。运用这个方法时,要创建一个类,在这个类创建数据表中列名字段,并提供getset方法,必须提供无参构造器。该类实例对象的字段数据为查询数据的一行数据。传入形参为改类的类加载器。

  • public static void beanListHandler() throws SQLException{
            //1.创建queryrunner对象
            QueryRunner queryRunner = new QueryRunner();
            String sql = "SELECT * FROM goods_class";
            //调用queryrunner的query查询方法
            List<Good_class> result = queryRunner.query(connection, sql, new BeanListHandler<Good_class>(Good_class.class));
            for(Good_class good_class:result) {
                System.out.println(good_class);
            }
        }


  • ColumnListHandler       返回某一列的数据。如果查询了多列数据,可以传入形参,形参可以为列的索引或者为列名。

  • public static void columnListHandler() throws SQLException {
            //1.创建queryrunner对象
            QueryRunner queryRunner = new QueryRunner();
            String sql = "SELECT * FROM goods_class";
            //调用queryrunner的query查询方法
            List<Object> result= queryRunner.query(connection, sql, new ColumnListHandler<Object>("gcname"));
            for (Object object : result) {
                System.out.println(object);
            }


  • ScalarHandler       返回一个对象,可以用于查询某列的值计算(如平均值,和,总次数等)或查询表中的某个数据

  • public static void scalarListHandler() throws SQLException{
            //1.创建queryrunner对象
            QueryRunner queryRunner = new QueryRunner();
            String sql = "SELECT SUM(gcid) FROM goods_class";
            //调用queryrunner的query查询方法
            Object object = queryRunner.query(connection, sql, new ScalarHandler<Object>());
            System.out.println(object);
        }


  • MapHandler       返回一个对象map,key为列名,value为该列数据,只含有查询结果的第一行数据,可用于查询某一行数据。

  • public static void mapHandler() throws SQLException{
            //1.创建queryrunner对象
            QueryRunner queryRunner = new QueryRunner();
            String sql = "SELECT * FROM goods_class";
            //调用queryrunner的query查询方法
            Map<String,Object> result = queryRunner.query(connection, sql, new MapHandler());
            for(String key:result.keySet()) {
                System.out.println(key + "  " + result.get(key));
            }
        }


  • MapListHandler 返回所有的对象map,key为列名,value为该列数据,并将map装入列表中。
public static void mapListHandler() throws SQLException{
        //1.创建queryrunner对象
        QueryRunner queryRunner = new QueryRunner();
        String sql = "SELECT * FROM goods_class";
        //调用queryrunner的query查询方法
        List<Map<String, Object>> result = queryRunner.query(connection, sql, new MapListHandler());
        for (Map<String, Object> map : result) {
            for(String key:map.keySet()) {
                System.out.print(key + "\t" + map.get(key) + "\t");
            }
            System.out.println();
        }
    }