Maison >base de données >Oracle >Java appelle une procédure stockée Oracle

Java appelle une procédure stockée Oracle

WBOY
WBOYoriginal
2023-05-07 21:14:073173parcourir

En tant que langage de programmation largement utilisé, Java joue un rôle important dans le développement de bases de données. En tant que l'un des systèmes de gestion de bases de données relationnelles les plus populaires aujourd'hui, Oracle est largement utilisé dans les applications d'entreprise en raison de sa grande évolutivité et de ses performances puissantes. Les procédures stockées sont une technologie très courante lors de l'utilisation de bases de données Oracle. Cet article présente comment Java appelle les procédures stockées Oracle.

1. Présentation des procédures stockées Oracle

Une procédure stockée est un ensemble d'instructions SQL précompilées qui peuvent être réutilisées et sont généralement stockées dans la base de données. Les procédures stockées peuvent recevoir des paramètres, générer des sorties, renvoyer des résultats, etc., et présentent de grands avantages en termes d'efficacité d'exécution. Dans la base de données Oracle, les procédures stockées sont généralement écrites en langage PL/SQL.

2. Java appelle les procédures stockées Oracle

Il existe deux manières d'appeler des procédures stockées Oracle en Java : en utilisant JDBC ou en utilisant le framework Hibernate.

  1. Utilisation de JDBC

L'utilisation de JDBC pour appeler des procédures stockées Oracle nécessite généralement les étapes suivantes :

(1) Ouvrez la connexion à la base de données

Créez une connexion à la base de données en utilisant la méthode Class.forName() et DriverManager.getConnection () méthode.

(2) Créez un objet CallableStatement

Dans JDBC, appelez la procédure stockée via CallableStatement. Les objets CallableStatement peuvent être créés à l'aide de la méthode Connection.prepareCall().

(3) Définir les paramètres

Définissez les paramètres d'entrée et les paramètres de sortie de la procédure stockée via la méthode setXXX() de l'objet CallableStatement.

(4) Exécutez la procédure stockée

Exécutez la procédure stockée via la méthode CallableStatement.execute().

(5) Libérer les ressources

Une fois l'exécution terminée, les ressources doivent être fermées, y compris les objets CallableStatement et les connexions à la base de données.

Ce qui suit est un exemple de code qui utilise JDBC pour appeler des procédures stockées Oracle.

// 首先加载Oracle驱动
Class.forName("oracle.jdbc.driver.OracleDriver");

//创建数据库连接
Connection conn = DriverManager.getConnection(url, username, password);

//设置输入参数和输出参数
CallableStatement cstmt = conn.prepareCall("{call procedure_name(?,?,?)}");
cstmt.setString(1, input_param1);
cstmt.setString(2, input_param2);
cstmt.registerOutParameter(3, Types.VARCHAR);

//执行存储过程
cstmt.execute();

//获取输出参数
String output_param = cstmt.getString(3);

//释放资源
cstmt.close();
conn.close();
  1. Utilisation du framework Hibernate

Le framework Hibernate est un framework de mappage objet/relationnel (ORM) open source qui fournit un moyen de mapper des objets Java dans des bases de données relationnelles. Lorsque vous utilisez le framework Hibernate, vous devez généralement utiliser des procédures stockées et des instructions SQL personnalisées pour interroger la base de données. Dans Hibernate, vous pouvez utiliser l'annotation @NamedStoredProcedureQuery pour appeler des procédures stockées.

Ce qui suit est un exemple de code utilisant Hibernate pour appeler des procédures stockées Oracle.

//定义存储过程
@NamedStoredProcedureQuery(
   name = "PROCEDURE_NAME",
   procedureName = "procedure_name",
   parameters = {
      @StoredProcedureParameter(mode = ParameterMode.IN, type = String.class, name = "input1"),
      @StoredProcedureParameter(mode = ParameterMode.IN, type = String.class, name = "input2"),
      @StoredProcedureParameter(mode = ParameterMode.OUT, type = String.class, name = "output")
   }
)

//调用存储过程
StoredProcedureQuery query = entityManager.createNamedStoredProcedureQuery("PROCEDURE_NAME");
query.setParameter("input1", input1);
query.setParameter("input2", input2);
query.execute();

//获取结果
String result = (String) query.getOutputParameterValue("output");

3. Résumé

Java appelant des procédures stockées Oracle est une exigence très courante dans le développement au niveau de l'entreprise, qui peut être réalisée en utilisant le framework JDBC ou Hibernate. Lorsque vous utilisez JDBC, vous devez effectuer des étapes telles que la connexion à la base de données, la création d'objets CallableStatement, la définition des paramètres, l'exécution de procédures stockées et la libération de ressources, ce qui est relativement gênant. Lorsque vous utilisez le framework Hibernate, vous pouvez utiliser l'annotation @NamedStoredProcedureQuery pour y parvenir. Quelle que soit la méthode utilisée, vous devez faire attention au type et à l'ordre de définition des paramètres ainsi qu'au nom correct de la procédure stockée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn