You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy中如何查询数据库判断指定字符串是否存在及实现前缀匹配查询

Groovy GORM 两类查询需求实现方案

基于你提供的 AccountNumber 域类,两种需求可直接通过GORM内置的动态查询方法实现,具体写法如下:

1. 判断指定字符串是否在数据库中存在

推荐使用countBy方法,仅统计匹配记录数,不需要拉取全量数据,性能更优:

// 入参为要判断的目标字符串,返回布尔值:存在为true,不存在为false
def isStrExists(String targetStr) {
    return AccountNumber.countByNumber(targetStr) > 0
}

// 调用示例
def target = "099900"
println isStrExists(target)

也可以使用findBy方法实现,逻辑等价:

def isStrExists(String targetStr) {
    return AccountNumber.findByNumber(targetStr) != null
}

2. 查询所有number字段以指定前缀开头的记录

使用SQL通配符%配合findAllBy*Like方法实现前缀匹配,%代表任意长度的任意字符:

// 入参为匹配前缀,返回所有符合条件的AccountNumber对象列表
def findByNumberPrefix(String prefix) {
    return AccountNumber.findAllByNumberLike("${prefix}%")
}

// 调用示例,查询以"98"开头的所有记录
def resultList = findByNumberPrefix("98")
// 遍历输出结果
resultList.each { account ->
    println "id: ${account.id}, number: ${account.number}"
}

注意:GORM动态查询方法默认会做参数绑定,无需额外处理SQL注入风险。

内容的提问来源于stack exchange,提问作者Private loop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:06:01