После получения соединения мы можем взаимодействовать с базой данных. Методы и свойства, определенные в операторе JDBC, интерфейсы CallableStatement и подготовленного предприятия включают отправку команд SQL или PL/SQL и получение данных из базы данных.
Они также определяют методы, которые помогают преобразовать различия данных между Java и базами данных с использованием типов данных SQL.
В следующей таблице представлен обзор того, как каждый интерфейс используется, чтобы понять, какой интерфейс использовать
Объект утверждения:
Создать объект оператора
Когда вы можете использовать объект оператора для выполнения операторов SQL, вам необходимо использовать метод CretenceTatement () объекта соединения для создания его, как показано в следующем примере:
Утверждение stmt = null; try {stmt = conn.createStatement (); Полем Полем .} Catch (SQLEXCECTION E) {. Полем .} окончательно { . Полем .}После того, как объект оператора создается, его можно использовать для выполнения операторов SQL с одним из трех его методов выполнения.
Boolean execute (String SQL): возвращает логическое значение true, если объект ResultSet может быть извлечен, в противном случае возвращает false. Используйте этот метод для выполнения операторов DDL SQL или при использовании Real Dynamic SQL.
int executupdate (String SQL): возвращает количество строк, выполненных затронутым оператором SQL. Используйте этот метод, чтобы выполнить, и надеемся получить некоторые затронутые строки операторов SQL - например, вставить, обновить или удалять операторы.
ResultSet executeQuery (String SQL): возвращает объект ResultSet. Используйте этот метод, когда вы хотите получить набор результатов, точно так же, как использование оператора SELECT.
Закрыть объект утверждения:
Так же, как закрытие объекта соединения для удержания ресурса базы данных, объект оператора должен быть закрыт по той же причине.
Простой призыв к методу Close () выполнит работу. Если объект соединения будет закрыт первым, он также закроет объект оператора. Тем не менее, объект утверждения всегда должен быть явно закрыт, чтобы обеспечить надлежащий зазор.
Утверждение stmt = null; try {stmt = conn.createStatement (); Полем Полем .} Catch (SQLEXCECTION E) {. Полем .} наконец {stmt.close ();}
Подготовленный объект
Интерфейс подготовленного Statatement расширяет интерфейс оператора, позволяя добавлять несколько расширенных функций в общий объект оператора.
Оператор обеспечивает гибкость для динамических параметров.
Создайте объект PreditStatement:
Подготовленное Statatement pstmt = null; try {string sql = "Обновление сотрудников устанавливает возраст =? Где id =?"; pstmt = conn.prepareStatement (SQL); Полем Полем .} Catch (SQLEXCECTION E) {. Полем .} окончательно { . Полем .}Все параметры в JDBC представлены? Символ, который является известным маркером параметров. Перед выполнением оператора SQL должен быть предоставлен каждый параметр значения.
Метод setxxx () связывает значение с параметром, где xxx представляет тип данных Java, который вы хотите привязать к значению входного параметра. Если вы забудете предоставить значение, вы получите SQLEXCEPTION.
Каждое тег параметра ссылается по позиции номера последовательности. Первая отметка указывает позицию 1, следующая позиция составляет 2 и т. Д. Этот метод отличается от индексации массива Java, начиная с 0.
Все методы объектов операторов для взаимодействия с базой данных (a) execute (), (b) executequery () и (c) executeUpdate () также работают с объектами подготовленного стата. Однако метод изменен для использования операторов SQL, которые могут использовать входные параметры.
Закройте объект подготовленного предприятия:
Так же, как закрытие объекта утверждения, по той же причине, объект подготовки также должен быть закрыт.
Простой призыв к методу Close () выполнит работу. Если объект подключения будет закрыт, он сначала закроет объект подготовленного статуса. Тем не менее, объект подготовленного предприятия всегда должен быть явно закрыт, чтобы обеспечить правильное разрешение.
Подготовленное Statatement pstmt = null; try {string sql = "Обновление сотрудников устанавливает возраст =? Где id =?"; pstmt = conn.prepareStatement (SQL); Полем Полем .} Catch (SQLEXCECTION E) {. Полем .} наконец {pstmt.close ();} Приготовленный экземпляр
Вот примеры этого, используя и выключение подготовленных и выключенных законодательств:
Скопируйте следующий пример jdbcexample.java, компиляция и запустить, как показано ниже:
// Шаг 1. Импорт Требуемый PackagesImport java.sql.*; Открытый класс jdbcexample {// jdbc имени драйвера и URL -адреса базы данных Static Final String jdbc_driver = "com.mysql.jdbc.driver"; Статическая конечная строка db_url = "jdbc: mysql: // localhost/emp"; // учетные данные базы данных Static Final String user = "username"; статическая конечная строка Pass = "пароль"; public static void main (string [] args) {connection conn = null; Подготовленное Statatement stmt = null; try {// Шаг 2: Зарегистрировать JDBC Driver Class.forname ("com.mysql.jdbc.driver"); // Шаг 3: Откройте систему соединения.out.println («Подключение к базе данных ...»); conn = drivermanager.getConnection (db_url, пользователь, Pass); // Шаг 4: Выполнить систему Query.out.println ("Создание оператора ..."); String sql = "Обновление сотрудников устанавливает возраст =? Где id =?"; stmt = conn.preparestatement (sql); // Свяжите значения с параметрами. STMT.SetInt (1, 35); // это установило бы возраст stmt.setint (2, 102); // это установило бы идентификатор // обновить возраст записи с помощью ID = 102; int rous = stmt.executeupdate (); System.out.println ("ряды затронуты:" + ряды); // Позвольте нам выбрать все записи и отобразить их. SQL = "Выберите идентификатор, сначала, последний, возраст от сотрудников"; ResultSet rs = stmt.executequery (sql); // Шаг 5: Извлеките данные из набора результатов while (rs.next ()) {// reture по имени столбца int id = rs.getint ("id"); int age = rs.getint ("age"); String first = rs.getString ("First"); String Last = Rs.GetString ("last"); // отображать значения System.out.print ("id:" + id); System.out.print (", возраст:" + возраст); System.out.print (", первое:" + первое); System.out.println (", Last:" + Last); } // Шаг 6: Среда очистки rs.close (); stmt.close (); conn.close (); } catch (sqlexception se) {// обрабатывать ошибки для jdbc se.printstacktrace (); } catch (Exception e) {// обрабатывать ошибки для class.forname e.printstacktrace (); } наконец {// наконец -то блок используется для закрытия ресурсов, попробуйте {if (stmt! = null) stmt.close (); } catch (sqlexception se2) {} // ничего мы не можем попробовать {if (conn! = null) conn.close (); } catch (sqlexception se) {se.printstacktrace (); } // end Наконец -то попробуйте} // end try system.out.println ("Прощай!"); } // end main} // end jdbcexampleТеперь давайте составим приведенный выше пример следующим образом:
C:> javac jdbcexample.java
При запуске JDBCEXAMPLE, он дает следующие результаты:
C:> Java Jdbcexample
Соединение с базой данных ... Создание утверждения ... Полияно на ряды: 1ID: 100, возраст: 18, первый: Zara, последний: Aliid: 101, Возраст: 25, первый: Махназ, последний: Fatmaid: 102, Возраст: 35, первый: Zaid, последний: Ханид: 103, возраст: 30, первый: sumit, последний: Mittalgoodbye!