我是 Groovy 的新手,我有一个带有“public static void main”的简单类,它使用 groovy.sql.sql 作为导入通过 sql.execute 和 sql.call 语句执行 SQL。我还导入了一项服务,用于检查 Oracle 数据库中现有应用程序中的安全设置。它还执行 SQL 语句。我的问题是,人们通常如何完成 SQL 连接?您是否为每个类打开一个连接,即每个类中都有一个单独的 SQL 连接?或者您可以将您的 SQL 连接信息传递给该类并以某种方式使用相同的连接吗?现在我让它与两个单独的连接一起工作,但我不确定这是否是实现这一目标的好方法。
如果以上内容不完全有意义(因为我是新手),这里是我的代码示例。在我的主课中,我像这样打开并调用 SQL:
//DB connection
def conn = new DbConnectService()
def sql = Sql.newInstance(conn.url, conn.username, conn.password, conn.driver)
然后我想通过调用安全检查类来检查安全设置,如下所示:
// Security check
def sec = new CheckSecurityService()
sec.SecurityCheck(ProgramName)
安全检查,在打开与上面完全相同的数据库连接后,会执行一些 SQL 调用,如下所示:
try
{
sql.call '{call G$_SECURITY.G$_VERIFY_PASSWORD1_PRD(?, ?, ?, ?)}', [$p_object, p_version, sql.VARCHAR, Sql.VARCHAR], { p_pass, p_rol ->
p_password = p_pass
p_role = p_rol
}
然后,如果成功,我将返回我的主类并执行更多 sql 语句,例如:
sql.execute("insert into test (key1, text) values (${foo}, ${text1})")
任何有关人们通常如何做到这一点的信息都值得赞赏!谢谢!