本帖最后由 PQguanfang 于 2020-2-16 20:31 编辑

DbLibX
  • 通过 Kotlin Coroutine 自动异步操作数据库. 再也不用担心主线程卡死了
  • 基于阿里巴巴的 Druid 连接池
  • 简洁易操作的 API 接口
  • 主要接口:
  1. createAction<R>(sql: kotlin.String, vararg args: kotlin.Any,
  2.    noinline action: suspend (java.sql.PreparedStatement) -> R)
复制代码
  • 示例 1:
  1. val insertAction =
  2.     createAction<Int>( // Kotlin 可以推断范型类型 此处 Int 可以省略
  3.             "INSERT INTO wacban (player, violationId, violationDuration,
  4.             violationType, checkType, time, extra)
  5.             VALUES (?, ?, ?, ? ,? ,?, ?)", // SQL语句
  6.             player, // 参数 1
  7.             violationData.violationId, // 参数 2
  8.             violationData.violationDuration, // 参数...
  9.             violationData.violationType.toString(),
  10.             violationData.getCheckType().getName(),
  11.             violationData.time,
  12.             violationData.extra) {
  13.                 it.executeUpdate() // 要执行的操作
  14.             }
  15.     insertAction.doAction() //返回操作状态
复制代码


  • 示例 2:
  1. val cacheHelperDataAction =
  2.     createAction("select * from wachelper") { // 构造数据库操作
  3.         val rs = it.executeQuery() // 执行query
  4.         val result = ArrayList<String>()
  5.         while (rs.next()) result.add(rs.getString("player")) // 获取数据
  6.         result // 闭包返回
  7.     }
  8.     cacheBanDataAction.doAction() //执行操作并获取结果
复制代码