DBUtils笔录

一、核心类QueryRunner

现阶段所有对数据库的操作(基本的增删改查操作)都可以由QueryRunner类实现,通过创建QueryRunner对象可以操作类中的成员方法{update()方法(增删改)与query()方法(查)};

二、方法详解

QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());//参数为数据源对象

2.1增

 public int insertGoods(Goods goods) throws SQLException {
        String sql = "INSERT INTO goods(NAME,price) VALUES (?,?);";
        int result = qr.update(sql,goods.getName(),goods.getPrice());
        return result;
    }
//第一个参数为sql语句,之后为可变参数,为所需插入的值

2.2删

 public int deleteGoods(int id) throws SQLException {
        String sql = "DELETE FROM goods WHERE id = ?;";
        int result = qr.update(sql,id);
        return result;
    }
//第一个参数为sql语句,之后为条件筛选值

2.3改

public int updateGoods(double price,int id) throws SQLException {
        String sql = "UPDATE goods SET price = ? WHERE id = ?;";
        int result = qr.update(sql,price,id);
        return result;
    }
//第一个参数为sql语句,之后为需要更新的列属性名,再接条件筛选值

2.4查

2.4.1查询一行

public Goods selectGoods(int id) throws SQLException {
        String sql = "SELECT * FROM goods WHERE id = ?;";
        ResultSetHandler<Goods> goodSet = new BeanHandler<Goods>(Goods.class);
        Goods goods = qr.query(sql,goodSet,id);
        return goods;
    }
//query()方法第一个参数为sql语句,第二个为ResultSetHandler<Goods>对象,最后为条件筛选值

 

ResultSetHandler(是一个接口,主要是完成ORM映射,把结果街转化成我们需要的java对象)

*BenaHandler //把单行结果集的数据封装成javaBean对象,返回值是ResultSetHandler
 ResultSetHandler <javaBean类型> rsh = new BeanHandler<javaBean类型>(javaBean.class);

本方法多用于在 处理把单行结果集封装成JavaBean对象。(对象通过反射完成创建)

 

2.4.2查询多行

public List<Map<String,Object>> selectGoods() throws SQLException {
        String sql = "SELECT * FROM goods";
        List<Map<String,Object>>  mapList = qr.query(sql,new MapListHandler());
        return mapList;
    }
*MapListHandler  List<Map<String,Object>> listmap = new MapListHandler();  
本方法是用来多行结果集的处理,把每行的结果封装成一个map,最后把所有的map都放在一个集合中 返回值是一个集合,但是集合中存放的是map,

————————————————
版权声明:本文为CSDN博主「大尾巴战狼」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dawiebazhanlang/article/details/80320996

 

上一篇:P3242 [HNOI2015]接水果


下一篇:【题解】[BJOI2019]删数