В JDBC ( Java Database Connectivity) есть 3 типа операторов, которые мы можем использовать для взаимодействия с СУБД (Database Management System). Пройдите через очень простые шаги, чтобы подключиться к БД Oracle и выполнить запрос .
Эти заявления:
- утверждение
- Подготовленное заявление
- CallableStatement
• Утверждение
представляет интерфейс базовых операторов. С точки зрения эффективности целесообразно использовать Statement только тогда, когда мы знаем, что нам не нужно будет выполнять SQL-запрос несколько раз. В отличие от PreparedStatement, Statement не предлагает поддержку параметризованных SQL-запросов, что является важной защитой от атак SQL-инъекций.
С учетом сказанного, Statement будет подходящим для выполнения операторов DDL (Data Definition Language), таких как CREATE, ALTER, DROP.
Other must read : Соединение с БД MySQL и руководство по выполнению запросов
Например:
|
1
2
|
Заявление stmt знак равно кон . createStatement ( ) ;
STMT. executeUpdate ( « УДАЛЯЙТЕ ТАБЛИЦУ ПРОДУКТОВ ЕСЛИ» ) ;
|
• PreparedStatment
расширяет интерфейс Statement. В большинстве случаев более эффективно (в контексте нескольких выполнений) использовать PreparedStatement, поскольку отправляемый оператор SQL предварительно компилируется (т. Е. Составляется план запроса) в СУБД. Кроме того, мы можем использовать PreparedStatement для безопасного предоставления значений параметрам SQL с помощью ряда методов установки (например, setInt (int, int) , setString (int, String) и т. Д.).
С учетом сказанного, вот пример PreparedStatement :
|
1
2
3
|
PreparedStatement pstmt знак равно кон . prepareStatement ( ЦЕНА ОБНОВЛЕНИЯ ПРОДУКТОВ УСТАНОВЛЕНА =? ГДЕ ID =? ) ;
Pstmt . setFloat ( 1 , 546,00f ) ;
Pstmt . setInt ( 2 , 7889 ) ;
|
• CallableStatement
расширяет интерфейс PreparedStatement. Этот интерфейс используется для выполнения хранимых процедур SQL. Одним из особых преимуществ использования CallableStatement является то, что он добавляет уровень абстракции, поэтому выполнение хранимых процедур не обязательно должно зависеть от СУБД.
Однако следует отметить, что выходные параметры должны быть явно определены с помощью соответствующих методов registerOutParameter (); тогда как входные параметры предоставляются так же, как и в PreparedStatement.
С учетом вышесказанного, вот пример того, как CallableStatement взаимодействует с хранимой процедурой MySQL, которая выполняет базовое умножение целых чисел:
|
1
2
3
4
5
6
7
8
|
ПРОЦЕДУРА CREATE умножит (OUT RESULT INT, В INT , В б INT ) УСТАНОВИТЬ РЕЗУЛЬТАТ знак равно * б ;
CallableStatement cstmt знак равно кон . prepareCall ( {call MULTIPLY (?,?,?)} ) ;
cstmt. registerOutParameter ( 1 , Типы. INTEGER ) ;
cstmt. setInt ( 2 , 4 ) ;
cstmt. setInt ( 3 , 8 ) ;
cstmt. выполнить ( ) ;
ИНТ результат знак равно cstmt. getInt ( 1 ) ;
|
Примеры Коллекции Java. Советы по WordPress.
0.00 (0%) 0 votes






