queryRunner 操作的一些方法

QueryRunner类的主要方法

public Object query(Connection conn, String sql, Object[] params, ResultSetHandler rsh) throws SQLException:执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。该方法会自行处理 PreparedStatement 和 ResultSet 的创建和关闭。

public Object query(String sql, Object[] params, ResultSetHandler rsh) throws SQLException: 几乎与第一种方法一样;唯一的不同在于它不将数据库连接提供给方法,并且它是从提供给构造方法的数据源(DataSource) 或使用的setDataSource 方法中重新获得 Connection。

public Object query(Connection conn, String sql, ResultSetHandler rsh) throws SQLException : 执行一个不需要置换参数的查询操作。

public int update(Connection conn, String sql, Object[] params) throws SQLException:用来执行一个更新(插入、更新或删除)操作。

public int update(Connection conn, String sql) throws SQLException:用来执行一个不需要置换参数的更新操作。

ResultSetHandler接口

该接口用于处理 java.sql.ResultSet,将数据按要求转换为另一种形式。

ResultSetHandler 接口提供了一个单独的方法:Object handle (java.sql.ResultSet .rs)。

ResultSetHandler 接口的实现类

ArrayHandler:把结果集中的第一行数据转成对象数组。

ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。

BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。

BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。

ColumnListHandler:将结果集中某一列的数据存放到List中。

KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key。

MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。

MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List
要使用QueryRunner操作Blob数据,您可以使用以下步骤: 1. 首先,确保您的数据库表中有一个Blob类型的列来存储二进制数据。 2. 创建一个QueryRunner对象并提供数据库连接信息,如数据库URL、用户名和密码。 ```java // 导入所需的类 import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.ScalarHandler; // 创建QueryRunner对象 QueryRunner queryRunner = new QueryRunner(dataSource); // dataSource是您的数据库连接对象 ``` 3. 使用QueryRunner的`update()`方法来执行插入或更新Blob数据的SQL语句。您可以使用`PreparedStatement`来设置Blob参数。 ```java // 示例 - 将Blob数据插入到数据库表中 String sql = "INSERT INTO your_table (blob_column) VALUES (?)"; InputStream inputStream = new FileInputStream("path_to_your_blob_file"); int rowsAffected = queryRunner.update(sql, inputStream); ``` 4. 若要从数据库中检索Blob数据,可以使用QueryRunner的`query()`方法,并使用`ResultSetHandler`来处理结果。 ```java // 示例 - 从数据库中检索Blob数据 String sql = "SELECT blob_column FROM your_table WHERE id = ?"; Object[] params = { 1 }; // 设置参数,例如,检索id为1的记录的Blob数据 byte[] blobData = queryRunner.query(sql, new ScalarHandler<byte[]>(), params); ``` 这是一个简单的示例,演示了如何使用QueryRunner操作Blob数据。您可以根据自己的需求进行修改和扩展。请确保正确处理输入和错误情况,并关闭相关资源,如输入流和数据库连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值