私はGroovyを初めて使用し、groovy.sql.sqlをインポートとして使用してsql.executeおよびsql.callステートメントを介してSQLを実行する「public static void main」を持つ単純なクラスを持っています。また、Oracle データベース内の既存のアプリケーション内のセキュリティ設定をチェックするサービスをインポートしています。また、SQL ステートメントも実行します。私の質問は、人々は通常どのように SQL 接続を達成するのですか? クラスごとに接続を開きますか、つまり、各クラス内で個別の SQL 接続を開きますか? または、SQL 接続情報をそのクラスに渡して、同じ接続を何らかの方法で使用できますか? 現在、2 つの別々の接続で動作していますが、それがこれを達成するための良い方法であるかどうかはわかりません。
上記が完全に意味をなさない場合 (私は初心者なので)、ここに私のコードのサンプルを示します。私のメインクラスでは、次のように 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)
セキュリティ チェックは、上記とまったく同じ DB 接続を開いた後、次のような 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})")
人々が通常これをどのように行うかについての情報は大歓迎です! ありがとう!