【问题标题】:Java/Kotlin - how to create method for endpoint with dynamic query parametersJava/Kotlin - 如何使用动态查询参数为端点创建方法
【发布时间】:2019-03-11 20:00:12
【问题描述】:

我的工作方法是通过 id 和一些动态查询参数返回我,例如“商店”。我已经创建了返回所有商店但仅通过 id 向我返回的方法。

这是我的方法,带有 id 和两个可选的东西:

override fun retriveStoresByDatabaseId(databaseId: String, pageSize: Int, pageNumber: Int): List<StoreDto> {
    val sq = SearchQuery()
    sq.setSearchParam("databaseId", databaseId)
    sq.setPageNumber(pageNumber)
    sq.setPageSize(pageSize)
    val stores: MutableList<StoreDto> = mutableListOf()
    storeRepository.findAll(sq).forEach {
        stores.add(DtoHelper.toDto(it, ""))
    }
    return stores
}

在商店模型类中,我有一个包含所有属性(即类型)的列表,在我的请求中,我想发送作为地图的主体,值是我的动态参数。然后我想只获取与地图中的值相等的这些参数。您能给我一些建议如何使用每个动态参数迭代该列表吗?

【问题讨论】:

    标签: java sql spring kotlin


    【解决方案1】:

    这是一个使用名称作为输入并返回 id 和名称的搜索

        fun getOneName(name: String): Contact? {
        val db = this.writableDatabase
        val selectQuery = "SELECT  * FROM $TABLE_NAME WHERE $colName = ?"
        db.rawQuery(selectQuery, arrayOf(name)).use { // .use requires API 16
            if (it.moveToFirst()) {
                val result = Contact()
                result.id = it.getInt(it.getColumnIndex(colId))
                result.name = it.getString(it.getColumnIndex(colName))
                return result
            }
        }
        return null
    }
    

    这是一个使用 ID 作为输入并从 childList 中取回数据的方法

        fun queryALL(fkI: Int): List<ModelChild> {
        val db = this.writableDatabase
        val childList = ArrayList<ModelChild>()
        val selectQuery = "SELECT  * FROM $CHILD_TABLE WHERE $colCFK = ?"
        //val selectQuery = "SELECT  * FROM ${CHILD_TABLE}"
        val cursor = db.rawQuery(selectQuery, arrayOf(fkI.toString()))
        //val cursor = db.rawQuery(selectQuery, null)
        if (cursor != null) {
            if (cursor.moveToFirst()) {
                do {
                    val contact = ModelChild()
                    contact.idI = Integer.parseInt(cursor.getString(cursor.getColumnIndex(colidI)))
                    contact.item = cursor.getString(cursor.getColumnIndex(colItem))
                    contact.fkI = Integer.parseInt(cursor.getString(cursor.getColumnIndex(colCFK)))
                    childList.add(contact)
                } while (cursor.moveToNext())
            }
        }
        cursor.close()
        return childList
    }
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2019-05-31
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      • 1970-01-01
      • 2023-01-10
      • 1970-01-01
      相关资源
      最近更新 更多