gpt4 book ai didi

sql - 在 Grails 中执行查询

转载 作者:行者123 更新时间:2023-12-02 15:57:15 25 4
gpt4 key购买 nike

我在 Groovy 中编写 SQL 查询时遇到了一点问题(v2.1.7。甚至不要问,为什么它这么旧:))。所以我有三个表要加入,我可以通过第三个表加入它们的 id,其中包含 id 对。但是,我想创建一个左连接,所以所有内容,即使它在右侧为空,也应该进入连接表 - 问题是,无论我做什么,包含空的行都不会出现。我怀疑这是关于包含对的表,但我不确定。

Table1 {
id
sth
}

Table2 {
id
ath
}

Table3 {
t1id
t2id
}

在其 Groovy 文件中,Table1 在 Table2 上有一个 hasMany 关系。
static hasMany = [t2s: Table2]

据我所知,我必须通过这些关系加入。

我的 SQL 查询如下所示:
Table1.executeQuery(
"SELECT t1.sth, t2.ath " +
"FROM Table1 t1 LEFT JOIN t1.t2s t2 " +
"WHERE t1.sth = ......)

有没有其他方法可以在 Grails 中编写 SQL 查询?

最佳答案

试试 Groovy Sql 对象,它非常简单:

只需在你的类定义下添加 def dataSource 行,Grails 就会注入(inject)你的数据源,或者如果只使用 Groovy,你可能需要创建一个数据源。然后创建一个 Sql 对象并使用该对象,它将返回结果的哈希映射。

def dataSource

Sql sql = new Sql(dataSource)
def rows = sql.rows("select * from PROJECT where name like 'Gra%'")

以下是创建自己的数据源的方法:
def db = [url:'jdbc:hsqldb:mem:testDB', user:'sa', password:'', driver:'org.hsqldb.jdbc.JDBCDriver']
def sql = Sql.newInstance(db.url, db.user, db.password, db.driver)

从这里的 Sql 对象文档中获得了大部分内容:

http://docs.groovy-lang.org/latest/html/api/groovy/sql/Sql.html

关于sql - 在 Grails 中执行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32871425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com