把对数据库的查询结果封装在List中

DbUtils类(org.apache.commons.dbutils.DbUtils)主要负责装载驱动、关闭连接的常规工作。

1.       close: 检查所提供的参数是不是NULL,如果不是的话,它们就关闭连接、声明和结果集。

2.       CloseQuietly:避免连接、声明或结果集为NULL的情况被关闭。

3.       CommitAndCloseQuietly(Connection conn):用来提交连接,然后关闭连接,并且在关闭连接时不向上抛出在关闭时发生的一些SQL异常。

4.       LoadDriver(String driveClassName): 装载并注册JDBC驱动程序,如果成功就返回TRUE。

QreryRunner类(org.apache.commons.dbutils.QueryRunner) 显著的简化了SQL查询,并与ResultSetHandler协同工作将使编码量大为减少。

1.       query(Connection conn, String sql, Object[] params, ResultSetHandler rsh):执行选择查询,在查询中,对象阵列的值被用来作为查询的置换参数。

2.       query(String sql, Object[] params, ResultSetHandler rsh):方法本身不提供数据库连接,执行选择查询,在查询中,对象阵列的值被用来作为查询的置换参数。

3.       query(Connection conn, String sql, ResultSetHandler rsh):执行无需参数的选择查询。

4.       update(Connection conn, String sql, Object[] params):被用来执行插入、更新或删除(DML)操作。

ResultSetHandler接口(org.apache.commons.dbutils.ResultSethandler)执行处理一个结果集对象,将数据转变并处理为任何一种形式,供其他应用使用。


例1表示的是如何使用DbUtil组件中的QueryRunner类中的query方法把查询结果封装在List中,单条记录存在map中相当于结果集List,List中的元素是存放每条记录的Map集合


 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以按照以下步骤封装Vert.x对MySQL数据库查询操作,并将查询结果封装成具体的实体类对象返回: 1. 首先,你需要在你的Vert.x应用程序添加MySQL客户端的依赖项。你可以使用Vert.x提供的官方MySQL客户端或其他第三方MySQL客户端库。 2. 接下来,你需要创建一个MySQL客户端的实例。在创建实例时,你需要提供MySQL服务器的主机名、端口号、数据库名称、用户名和密码等信息。 3. 然后,你可以使用客户端实例执行查询操作。在执行查询操作时,你需要提供SQL查询语句和查询参数查询参数可以是一个JSON对象,其包含查询的占位符的值。 4. 当查询操作完成时,你可以将查询结果封装成具体的实体类对象。你可以使用Java的反射机制或其他方式来完成这个任务。 5. 最后,你可以将封装好的实体类对象返回给调用方。 下面是一个示例代码,用于封装Vert.x对MySQL数据库查询操作: ```java public class MySQLClient { private final JDBCClient client; public MySQLClient(Vertx vertx, JsonObject config) { client = JDBCClient.createShared(vertx, config); } public <T> void query(String sql, JsonArray params, Class<T> clazz, Handler<AsyncResult<List<T>>> resultHandler) { client.queryWithParams(sql, params, ar -> { if (ar.succeeded()) { List<T> list = ar.result().getRows().stream().map(row -> { T obj = null; try { obj = clazz.newInstance(); for (Map.Entry<String, Object> entry : row) { String fieldName = entry.getKey(); Field field = clazz.getDeclaredField(fieldName); field.setAccessible(true); field.set(obj, entry.getValue()); } } catch (Exception e) { e.printStackTrace(); } return obj; }).collect(Collectors.toList()); resultHandler.handle(Future.succeededFuture(list)); } else { resultHandler.handle(Future.failedFuture(ar.cause())); } }); } } ``` 在这个示例代码,`MySQLClient`类封装了Vert.x对MySQL数据库查询操作。`query`方法接收SQL查询语句、查询参数、实体类类型和异步结果处理器作为参数。当查询操作完成时,它将封装好的实体类对象列表传递给异步结果处理器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值