В текущем выпуске журнала 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// procedureCallableStatement 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 procedureStoredProcedureQuery 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 exampleRoutines.createEmp(config, "JOSH", "JUNEAU"); |
Да! Вот и все. Не тратьте время на ручную настройку переменных связывания с вызовами JDBC API или аннотациями JPA. Никто не любит писать аннотации для хранимых процедур. С jOOQ и генератором кода jOOQ вызовы процедур:
- Однострочник
- Ежу понятно
- Способ вернуть удовольствие от хранимых процедур
Узнайте больше об использовании хранимых процедур Oracle с вложенными коллекциями и типами объектов здесь: безболезненный доступ из Java в PL / SQL-процедуры с помощью jOOQ
| Ссылка: | Использование хранимых процедур с JPA, JDBC. Мех, просто используйте jOOQ от нашего партнера по JCG Лукаса Эдера в блоге JAVA, SQL и AND JOOQ . |