2
在我的应用程序中,有一些地方我想使用纯SQL。当我在Sql.newInstance中硬编码连接细节时,它工作正常。出于显而易见的原因,我宁愿不要硬编码连接细节。Grails中的SQL连接
当我使用dataSource变量时,它显示为空。我在控制器代码:
import groovy.sql.Sql
def dataSource
def sql = Sql.newInstance(dataSource)
sql.executeInsert("insert into....")
我的数据源中的配置文件中的代码是:
environments {
development {
dataSource {
dbCreate = "create-drop"
url = "jdbc:postgresql:mydev"
username = "xxx"
password = "xxx"
正如你可以看到我使用PostgreSQL。我也试过使用默认的grails数据库,结果相同。
任何想法,将不胜感激。
嗨crudolf谢谢你的答案。它现在通过这个def dataSource行,但是当我设置def sql = new Sql(dataSource)时,我得到一个ClassNotFoundException异常。我也试过def sql = new groovy.sql.Sql(dataSource),但结果相同。有任何想法吗?此致,Marius – marius 2012-03-27 09:14:24
尝试在您的控制器的顶部执行'import groovy.sql.Sql'。理论上它应该工作。你使用的是Grails 1.3.7还是2.0.1?如果没有帮助,请告诉我完整的例外原因。 – Chris 2012-03-27 11:11:14
我正在使用grails 2.0.1。目前我正在导入groovy.sql.Sql。我有一个想法,为什么它不工作,但不知道如何解决它,或者如果它甚至是问题。在我看来,我使用一个标签来渲染一些复选框。在检查/取消选中这些复选框时,我使用AJAX调用将一些参数传递给一个javascript函数,后者又调用控制器,在那里我尝试运行SQL查询的自定义操作。在使用AJAX调用时,是否会丢失我的Grails对象? – marius 2012-03-27 21:39:51