kotlin后端数据库一些基本操作
1、表中取某个字段的值
val qrcodeStateList = qrcodeDao.find(qrcodeDao.filter().isIn({ it::id }, qrCodeDownloadDto.guid)).filterNotNull()
val qrState = qrcodeStateList.first()
qrState.state
查出数据之后,先对数据.first,然后直接.字段名
2、批量更新
val newQRCodeList = qrcodeList.map { it.copy(state = QRCodeState.INVALID.toString()) }
qrcodeDao.updateBatch(newQRCodeList) { setOf(it::state) }
先写赋值,it.copy。再写setof
val qrcodeParamList = qrcodeList.map{
it.copy(
brand = param.brand,
series = param.series,
version = param.version,
itemName = param.itemName,
itemModel = param.itemModel,
qrCodeName = param.qrCodeName,
state = QRCodeState.AUDIT.toString(),
)
}
qrcodeDao.updateBatch(qrcodeParamList){
setOf(
it::brand,
it::series,
it::version,
it::itemName,
it::itemModel,
it::qrCodeName,
it::state,
)
}
3、filter里赋值
val filterMap = mutableMapOf("treeLevel" to "4", "deleted" to "0")
if (keywords.isNotEmpty()) {
filterMap["deptName*Like"] = keywords
}
在mutableMapof里面写赋值的代码,基本是作为限制条件来用
4、 返回分页查询的结果
return BuilderModelQuery(t_es_product_qrcode(), t_es_product_qrcode()).addFilterChain {
it.isIn(departmentList.isNotEmpty(), { it::departmentId }, departmentList.map { it.id })
it.like(param.brand.isNotEmpty(), { it::brand }, param.brand)
it.like(param.itemName.isNotEmpty(), { it::itemName }, param.itemName)
it.like(param.itemModel.isNotEmpty(), { it::itemModel }, param.itemModel)
it.like(param.creator.isNotEmpty(), { it::creator }, param.creator)
it.ge(param.startTime.isNotBlank(), { it::createTime }, param.startTime)
it.le(param.endTime.isNotBlank(), { it::createTime }, param.endTime)
it.like(param.auditor.isNotEmpty(), { it::auditor }, param.auditor)
}.page(param.page, param.total, param.size)
return里面,BuilderModelQuery(表名字,表名字).addFilterChain{查询条件}.page(param.page, param.total, param.size)
override fun productQRCodeQuery(param: QRCodeQueryDto): ModelPageable<t_es_product_qrcode?>
在函数名字后面,写,: ModelPageable<t_es_product_qrcode?>
@PostMapping("/query")
fun productQRCodeQuery(@RequestBody param: QRCodeQueryDto): RestResultDto<ModelPageable<t_es_product_qrcode?>?> {
val args = object {
val param = param
}
return KinlongToolkit.restResult(currentClass, args) { productQRCodeService.productQRCodeQuery(param) }
}
接口上,写,: RestResultDto<ModelPageable<t_es_product_qrcode?>?>