【问题标题】:How to generate SQL statements dynamically using Doobie (scala)如何使用 Doobie (scala) 动态生成 SQL 语句
【发布时间】:2020-01-29 19:50:06
【问题描述】:

我有疑问:

val sql = """select
                   id,
                   clientName
             from
                  partnerClients
             where
                  partnerName = ?
          """

我从 excel 文件中读取 partnerName 并为每个我执行 func:

case class Partner(name: String)
case class Client(id: Int, name: String)

def queryPartnerClients(partnerName: String) = Query[String, Client](sql, None).toQuery0(partnerName)

def getPartnerClients(partner: Partner): IO[Vector[Client]] =  partnerClients(partner.name)                                             
                                                              .to[Vector]
                                                              .transact(xa)

我使用了这个FAQ(如何将任意 SQL 字符串转换为 Query/Query0)

当我从 excel 中获取合作伙伴名称时,问题是得到空结果,但如果我在代码中指定相同的合作伙伴名称,例如:

def partnerClients(partnerName: String) = {
    val temp = "Partner Name"
    Query[String, Client](sql, None).toQuery0(temp)
}

我认为这是编码的问题,我试图修复它

def partnerClients(partnerName: String) = {
    val temp = new String(partner.getBytes("Windows-1251"), "UTF-8")
    Query[String, Client](sql, None).toQuery0(temp)
}

但结果是一样的——空集。

【问题讨论】:

    标签: scala doobie


    【解决方案1】:

    我使用this answer打开日志,发现我发送的参数包含空格。修剪功能修复它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 2017-08-06
      • 1970-01-01
      相关资源
      最近更新 更多