В этой главе приведен пример того, как создать простое приложение JDBC с использованием библиотеки DBUtils. Это покажет вам, как открыть соединение с базой данных, выполнить запрос SQL и отобразить результаты.
Все шаги, упомянутые в этом примере шаблона, будут объяснены в последующих главах этого руководства.
Создание приложения JDBC
В создании приложения JDBC есть шесть следующих шагов:
-
Импортировать пакеты. Требуется включить пакеты, содержащие классы JDBC, необходимые для программирования баз данных. Чаще всего достаточно использовать импорт java.sql. * .
-
Зарегистрировать драйвер JDBC. Требуется инициализировать драйвер, чтобы вы могли открыть канал связи с базой данных.
-
Открыть соединение. Требуется использование метода DriverManager.getConnection () для создания объекта Соединение, представляющего физическое соединение с базой данных.
-
Выполнить запрос — требует использования объекта типа Statement для построения и отправки SQL-выражения в базу данных.
-
Извлечь данные из набора результатов. Требуется использовать соответствующий метод ResultSet.getXXX () для извлечения данных из набора результатов.
-
Очистка среды. Требуется явное закрытие всех ресурсов базы данных, а не использование сборки мусора JVM.
Импортировать пакеты. Требуется включить пакеты, содержащие классы JDBC, необходимые для программирования баз данных. Чаще всего достаточно использовать импорт java.sql. * .
Зарегистрировать драйвер JDBC. Требуется инициализировать драйвер, чтобы вы могли открыть канал связи с базой данных.
Открыть соединение. Требуется использование метода DriverManager.getConnection () для создания объекта Соединение, представляющего физическое соединение с базой данных.
Выполнить запрос — требует использования объекта типа Statement для построения и отправки SQL-выражения в базу данных.
Извлечь данные из набора результатов. Требуется использовать соответствующий метод ResultSet.getXXX () для извлечения данных из набора результатов.
Очистка среды. Требуется явное закрытие всех ресурсов базы данных, а не использование сборки мусора JVM.
Образец кода
Этот пример примера может служить шаблоном, когда вам необходимо в будущем создать собственное приложение JDBC.
Этот пример кода был написан на основе настройки среды и базы данных, выполненной в предыдущей главе.
Скопируйте и вставьте следующий пример в MainApp.java, скомпилируйте и запустите следующим образом:
MainApp.java
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import org.apache.commons.dbutils.DbUtils; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.ResultSetHandler; import org.apache.commons.dbutils.handlers.BeanHandler; public class MainApp { // JDBC driver name and database URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/emp"; // Database credentials static final String USER = "root"; static final String PASS = "admin"; public static void main(String[] args) throws SQLException { Connection conn = null; QueryRunner queryRunner = new QueryRunner(); //Step 1: Register JDBC driver DbUtils.loadDriver(JDBC_DRIVER); //Step 2: Open a connection System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL, USER, PASS); //Step 3: Create a ResultSet Handler to handle Employee Beans ResultSetHandler<Employee> resultHandler = new BeanHandler<Employee>(Employee.class); try { Employee emp = queryRunner.query(conn, "SELECT * FROM employees WHERE first=?", resultHandler, "Sumit"); //Display values System.out.print("ID: " + emp.getId()); System.out.print(", Age: " + emp.getAge()); System.out.print(", First: " + emp.getFirst()); System.out.println(", Last: " + emp.getLast()); } finally { DbUtils.close(conn); } } }
Employee.java
public class Employee { private int id; private int age; private String first; private String last; public int getId() { return id; } public void setId(int id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getFirst() { return first; } public void setFirst(String first) { this.first = first; } public String getLast() { return last; } public void setLast(String last) { this.last = last; } }
Теперь давайте скомпилируем приведенный выше пример следующим образом:
C:\>javac MainApp.java Employee.java C:\>
Когда вы запускаете MainApp , он дает следующий результат —