В текущем выпуске журнала Java есть статья о лучших методах работы с большими данными для JDBC и JPA Джоша Джуно : http://www.javamagazine.mozaicreader.com/MayJune2016
В статье показано, как использовать хранимую процедуру с JDBC (к сожалению, обратите внимание, что ресурсы не закрыты. Об этом часто забывают даже в статьях журнала Java)
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
// Using JDBC to call upon a database stored // procedure CallableStatement cs = null ; try { cs = conn.prepareCall( "{call DUMMY_PROC(?,?)}" ); cs.setString( 1 , "This is a test" ); cs.registerOutParameter( 2 , Types.VARCHAR); cs.executeQuery(); // Do something with result String returnStr = cs.getString( 2 ); } catch (SQLException ex){ ex.printStackTrace(); } |
И с JPA:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
// Utilize JPA to call a database stored procedure // Add @NamedStoredProcedureQuery to entity class @NamedStoredProcedureQuery ( name= "createEmp" , procedureName= "CREATE_EMP" , parameters = { @StoredProcedureParameter ( mode= ParameterMode.IN, type=String. class , name= "first" ), @StoredProcedureParamter ( mode = ParameterMode.IN, type=String. class , name= "last" ) }) // Calling upon stored procedure StoredProcedureQuery qry = em.createStoredProcedureQuery( "createEmp" ); qry.setParameter( "first" , "JOSH" ); qry.setParameter( "last" , "JUNEAU" ); qry.execute(); |
В частности, последнее также недавно обсуждалось в сообщениях блога Влада Михалча и Торбена Янссена .
Вам нравится многословие и сложность?
Нет? Мы тоже. Вот почему мы даем вам третий вариант: просто используйте jOOQ. Вот эквивалентный код JOOQ:
1
2
3
4
5
6
|
// JDBC example: String returnStr = Routines.dummyProc( config, "This is a test" ); // JPA example Routines.createEmp(config, "JOSH" , "JUNEAU" ); |
Да! Вот и все. Не тратьте время на ручную настройку переменных связывания с вызовами JDBC API или аннотациями JPA. Никто не любит писать аннотации для хранимых процедур. С jOOQ и генератором кода jOOQ вызовы процедур:
- Однострочник
- Ежу понятно
- Способ вернуть удовольствие от хранимых процедур
Узнайте больше об использовании хранимых процедур Oracle с вложенными коллекциями и типами объектов здесь: безболезненный доступ из Java в PL / SQL-процедуры с помощью jOOQ
Ссылка: | Использование хранимых процедур с JPA, JDBC. Мех, просто используйте jOOQ от нашего партнера по JCG Лукаса Эдера в блоге JAVA, SQL и AND JOOQ . |