【问题标题】:how to get a String value from a SQL query in Grails?如何从 Grails 中的 SQL 查询中获取字符串值?
【发布时间】:2011-09-22 13:01:49
【问题描述】:

我需要返回一个字符串值,以便我可以通过 Restful 从另一个应用程序构建一个对象。我的部分代码如下 sn-p:

def searchProductionOrder (String sequentialNumber) {
    def sql = Sql.newInstance(dbUrl, user, pwd, driverName)
    String idProdOrder = sql.execute("""
        SELECT production_order.idProdOrder
        FROM production_order production_order
        WHERE production_order.sequential_number LIKE ${sequentialNumber}
         """).toString();
    String url = ":8080/app2/api/productionOrder/"+idProdOrder
    // call to Restful service
    return Order
}

但字符串 url 总是被解释为(我打印出来进行测试)为:

网址::8080/app2/api/productionOrder/true

我需要 idProdOrder 字符串来返回它的值,而不是布尔值。我该怎么做?

提前致谢,

【问题讨论】:

    标签: sql string url grails groovy


    【解决方案1】:

    不要执行总是返回布尔值的执行,而是执行以下操作

    def searchProductionOrder (String sequentialNumber) {
        def sql = Sql.newInstance(dbUrl, user, pwd, driverName)
        String idProdOrders = sql.rows("""
            SELECT production_order.idProdOrder
            FROM production_order production_order
            WHERE production_order.sequential_number LIKE ${sequentialNumber}
             """)
        if(idProdOrders.size()==1)
        {
          String url = ":8080/app2/api/productionOrder/"+idProdOrders[0].idProdOrder
          // call to Restful service
          return Order 
        }
        else
        {
          //You have either no results from the query or more then 1 so do something
        }
    
    }
    

    如果您想确保为每个结果都做了一些事情,您也可以使用 sql.eachRow。文档是here。唯一需要仔细检查的是它返回的条目的名称我不确定它会做什么,因为你做了 production_order.idProdOrder

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多