【发布时间】:2016-05-10 05:34:05
【问题描述】:
谁能告诉我如何从用户定义路径中的 Grails 调用存储过程。
【问题讨论】:
-
用户定义的路径是什么意思?存储过程存储在 sql server 上。您想执行存储在文件系统上的 sql 文件吗?
谁能告诉我如何从用户定义路径中的 Grails 调用存储过程。
【问题讨论】:
为此,您可以使用Groovy Sql。
使用 Groovy SQL:
import groovy.sql.Sqldef dataSource 或def sessionFactory 请求对数据源的引用以进行事务def sql = new Sql(dataSource)或def sql = new Sql(sessionFactory.currentSession.connection())创建一个Sql对象
Grails 将自动管理与数据源的连接。
注意:dataSource 和 sessionFactory 是您必须在 pojo/bean 类中注入的 bean。
所以要执行写在你文件上的sql代码:
String sqlFilePath = grailsApplication.parentContext.servletContext.getRealPath("/data/proc.sql")
String sqlString = new File(sqlFilePath).text
Sql sql = new Sql(sessionFactory.currentSession.connection())
sql.execute(sqlString)
这将在您的 sql 服务器上执行您的文件中写入的任何 sql 语句。
【讨论】: