Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка_работа_с_PostgreSQL.doc
Скачиваний:
28
Добавлен:
10.11.2019
Размер:
5.91 Mб
Скачать

4.2Взаимодействие с бд

Имея соединение с БД, можно создавать объекты типа Statement, служащие для исполнения запросов к БД на языке SQL.

Существуют три типа Statement, различающиеся по назначению:

  • java.sql.Statement — служит для выполнения непараметрических запросов общего назначения;

  • java.sql.PreparedStatement — служит для выполнения запросов, содержащих подставляемые параметры (обозначаются символом '?' в теле запроса);

  • java.sql.CallableStatement — предназначен для вызова хранимых процедур (см. ниже).

Интерфейс java.sql.ResultSet позволяет легко обрабатывать результаты запроса.

Сначала выполним соединение с БД.

import java.sql.*;

//Загрузка драйвера

Class.forName ("org.postgresql.Driver");

//Class.forName ("com.mysql.jdbc.Driver");

//Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");

//Формирование URL

String URL = "jdbc:postgresql://localhost: 5432/dekanat";

//String URL = "jdbc:mysql://localhost:3306/dekanat"; // для БД в MySql

//String URL = "jdbc:odbc:DekanatPsql"; // ODBC для БД в PostgreSql

//Cоединение

Connection dbс = DriverManager.getConnection(URL, "Ivanov", "123456");

Теперь выполним непараметрический запрос

//Утверждение

Statement st = dbс.createStatement();

//Выполнение и результат запроса

ResultSet rs = st.executeQuery("select * from students where StStipend > 600");

//обработка. Вывод содержимого 2-х столбцов

while (rs.next()) { System.out.println(rs.getString(1));

System.out.println(rs.getString("StName") + "\t" + rs.getString("StStipend")); }

rs.close();

st.close();

Теперь выполним параметрический запрос, используя объект

PreparedStatement pst = dbс.createPreparedStatement();

// Формирование текста запроса с 2-мя параметрами

String SQLTxt := "select , StName, StBrthDate, StStipend " +

"from Students " +

"where StStipend > ? and GrNo = ?";

Перед выполнением объекта PreparedStatement надо установить значения всех его параметров. Это делается с помощью методов setXXX, где XXX - это тип параметра. Например, если параметр имеет Java-тип int, используемый метод будет setInt.

Первый аргумент методов setXXX - это порядковый номер параметра, а второй - значение, в которое надо его установить. Например, следующий код устанавливает первый параметр в значение 600, а второй - в 2:

pst.setLong(1, 600);

pst.setInt(2, 2);

После установки параметра его можно использовать при многократном выполнении выражения до тех пор, пока он не очистится методом clearParameters.

//выполнение и результат запроса

ResultSet rs = pst.executeQuery(SQLTxt);

//обработка. Вывод содержимого 2-х столбцов

while (rs.next()) { System.out.println(rs.getString("StName") + "\t" +

rs.getString("StStipend")); }

rs.close();

pst.close();

5Создание представлений

В PostgreSQL поддерживается возможность создания представлений (View).

Рассмотрим процесс создания представления средствами pgAdmin III для конкретного примера: “Создать представление, содержащее фамилии студентов группы КC-041”.

Для этого в pgAdmin III необходимо в окне Браузер объектов для БД «Деканат ВУЗа» активизировать контекстное меню представлений (Виды, Views) (рисунок 4.1).

Рисунок 4.1 – Контекстное меню представлений

После выбора пункта меню Новый вид откроется окно Новое представление. На закладке Свойства необходимо определить Имя нового представления и его Владельца (рисунок 4.2).

Рисунок 4.2 – Окно Новое представление

Далее необходимо перейти на закладку Определение и ввести предложение Select, на основе которого будет создано новое представление (рисунок 4.3). После чего нажать ОК.

Рисунок 4.3 – Закладка Определение с предложением Select

Запрос создания нового представления можно просмотреть на закладке SQL (рисунок 4.4).

Рисунок 4.4 – Директива создания представления

В результате выполнения этих действий в окне Браузер объектов появится новое представление (рисунок 4.5).

Рисунок 4.5 – Окно Браузер объектов

Просмотреть содержимое представления можно таким же образом, как и содержимое таблицы, путем выбора соответствующего объекта в окне Браузер объектов и нажатия кнопки Просмотр данных в выбранном объекте (рисунок 4.6).

Рисунок 4.6 ­– Просмотр содержимого представления