Java:ApDBUtils查询

在这里插入图片描述
返回的查询数据表的结果是多行的情况:

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.junit.Test;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

public class DBUtils_Use {

    //使用 apache-DBUtils工具类 + druid 完成对表的crud操作
    @Test
    public void testQueryMany() throws SQLException {  //返回结果是多行的情况

        //1.得到 连接(druid)
        Connection connection = JDBCUtilsByDruid.getConnection();
        //2.使用DBUtils类和接口,先引入DBUtils相关的jar,加入到本project
        //3.创建QueryRunner,就可以执行相关的方法,返回ArrayList结果集
        QueryRunner queryRunner = new QueryRunner();
        //String sql = "select * from actor where id >= ?";
        //sql语句也可以查询部分列
        String sql = "select id, name from actor where id >= ?";
        //解读:
        //(1) query方法就是执行sql语句,得到resultset ---封装到--->ArrayList集合中
        //(2) 返回集合
        //(3) connection:连接
        //(4) sql:执行的sql语句
        //(5) new BeanListHandler<>(Actor.class):在将resultset-->Actor对象-->封装到ArrayList
        //    底层使用反射机制,去获取Actor类的属性,然后进行封装
        //(6) 1 是给sql语句中的?赋值,可以有多个值,因为是可变参数Object... params
        //(7) 底层得到的resultset,会在query关闭,关闭PreparedStatement
        List<Actor> list =
                queryRunner.query(connection, sql, new BeanListHandler<>(Actor.class), 1);
        System.out.println("输出集合的信息");
        for(Actor actor : list) {
            System.out.print(actor);
        }

        //释放资源
        JDBCUtilsByDruid.close(null, null, connection);
    }
}

返回结果是单行记录:

//使用 apache-DBUtils工具类 + druid 完成 返回结果是单行记录(单个对象)
@Test
public void testQuerySingle() throws SQLException {  //返回结果是单行的情况

    //1.得到 连接(druid)
    Connection connection = JDBCUtilsByDruid.getConnection();
    //2.使用DBUtils类和接口,先引入DBUtils相关的jar,加入到本project
    //3.创建QueryRunner,就可以执行相关的方法,返回单个对象
    QueryRunner queryRunner = new QueryRunner();
    //String sql = "select * from actor where id >= ?";
    //sql语句也可以查询部分列
    String sql = "select * from actor where id = ?";
    //解读:
    //因为我们返回的单行记录<--->单个对象,使用的Handler是BeanHandler
    Actor actor =
            queryRunner.query(connection, sql, new BeanHandler<>(Actor.class), 2);
    System.out.print(actor);

    //释放资源
    JDBCUtilsByDruid.close(null, null, connection);
}

返回结果是单行单列:

//使用 apache-DBUtils工具类 + druid 完成 返回结果是单行单列-返回的就是Object
@Test
public void testScalar() throws SQLException {  //返回结果是单行的情况

    //1.得到 连接(druid)
    Connection connection = JDBCUtilsByDruid.getConnection();
    //2.使用DBUtils类和接口,先引入DBUtils相关的jar,加入到本project
    //3.创建QueryRunner,就可以执行相关的方法,返回单行单列,返回的就是Object
    QueryRunner queryRunner = new QueryRunner();
    //String sql = "select * from actor where id >= ?";
    //sql语句也可以查询部分列
    String sql = "select name from actor where id = ?";
    //解读:
    //因为我们返回的是一个对象,使用的Handler是ScalarHandler
    Object obj = queryRunner.query(connection, sql, new ScalarHandler(), 2);
    System.out.print(obj);

    //释放资源
    JDBCUtilsByDruid.close(null, null, connection);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值