JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement

JDBC, драйверы строчка соединения, класс DriverManager, интерфейс Connection.

Не считая классов с способами доступа к базам данных для каждой СУБД нужен драйвер JDBC — промежная программка, реализующая способы JDBC. Есть четыре типа драйверов JDBC.

1. JDBC-ODBC "мост". Драйверы данного типа реализуют доступ к базе данных, используя механизм ODBC (Open Database Connectivity). При JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement использовании такового драйвера будет нужно установить на каждом рабочем месте клиентскую часть базы данных. В неких случаях будет нужно к тому же ODBC-драйвер. JDBC-ODBC "мост" более применим для использования в корпоративных сетях, также для реализации на Java серверной части приложения с так именуемой "трехуровневой" архитектурой. (пример JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement: JavaSoft)

2. Драйвер, написанный с внедрением native-методов. Этот драйвер конвертирует JDBC-вызовы в вызовы архитектурно-зависимой клиентской части Oracle, Sybase, Informix, DB2 и других баз данных. Это просит, как и в случае использования JDBC-ODBC "моста" установки на каждое клиентское место некого программного обеспечения. (IBM)

3. Драйвер клиент-серверной архитектуры с JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement клиентской частью, реализованной на Java. Драйвер данного типа конвертирует JDBC-вызовы к сетевому протоколу, независящему от базы данных, которые потом преобразуются сервером к протоколу определенной базы данных. Сервер имеет возможность подключить собственных Java клиентов к разным базам данных. Внедрение определенного протокола находится в зависимости от производителя. Многие компании уже JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement при разработке собственных программных товаров учитывают возможность использования JDBC. (IDS Software)

4. Драйвер, реализованный на Java и использующий протокол определенной базы данных. Данный драйвер реализует конкретный доступ клиента к полям базы данных, что является лучшим решением при использовании баз данных в корпоративной сети. Так как этот механизм находится в зависимости от реализации базы данных JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement, компании-производители берутся сами за создание драйверов JDBC. (Imaginary)

Подключение Java-программы к реляционной СУБД при помощи JDBC производится в три шага:

· Установка связи меж Java-программой и диспетчером базы данных.

· Передача SQL-команды в базу данных при помощи объекта Statement.

· Чтение приобретенных результатов из базы JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement данных и внедрение их в программке.

Работа с классом DriverManager

Для подключения к базе данных среда выполнения Java должна загрузить соответственный драйвер обозначенной базы данных. Загрузка и выгрузка таких драйверов осуществляется при помощи класса DriverManager.

Стандартный метод получения соединения - это вызов способа DriverManager.getConnection. Этому способу передается строчка, содержащая т.н. "URL". Класс JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement DriverManager, представляющий из себя уровень управления в JDBC, пробует отыскать драйвер, который может объединиться к БД при помощи данного URL. Класс DriverManager содержит перечень зарегистрированных классов Driver, и при вызове способа getConnection он инспектирует каждый драйвер и отыскивает посреди их тот, который "умеет" объединятся с БД, обозначенной JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement в URL. Способ connect драйвера употребляет этот URL для установления соединения.

Перед воззванием к базе данных следует установить подходящий драйвер.

После того как драйвер установлен, нужно связаться с базой данных. Способы связи описаны в интерфейсе connection. Экземпляр класса, реализующего этот интерфейс, можно получить одним из статических способов getConnection JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement () класса DriverManager, к примеру:

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

String host = "jdbc:mysql://localhost:3306/";

String database = "vinogradovadz?useUnicode=true&characterEncoding=utf8";

String user = "root";

String password = "gfhjkm";

connection = DriverManager.getConnection(host+database,user,password);

JDBC-URL

JDBC-URL предоставляет метод указания БД и определенного драйвера, который устанавливает соединение с данной JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement БД.

Стандартный синтаксис JDBC URL показан ниже. Он имеет три части, разбитых двоеточием:

jdbc::

JDBC URL состоит из:

jdbc - протокола. Протокол, применяемый в JDBC URL - всегда jdbc.

(подпротокола) - это имя драйвера либо имя механизма соединения с БД. Подпротокол может поддерживаться одним либо несколькими драйверами. Лежащий на поверхности пример подпротокола JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement - это "odbc", отведенный для URL, обозначающих имя источника данных ODBC. К примеру, для доступа к БД через мост JDBC-ODBC необходимо использовать URL такового вида:

jdbc:odbc:fred

В этом примере подпротокол задан как "odbc", а подимя "fred" является локальным источником данных.

(подимени) - это идентификатор БД. Значение подимени JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement может менятся зависимо от подпротокола, и может также иметь подподимя с синтаксисом, определяемым разработчиком драйвера. Предназначение подимени - это предоставление всей инфы, нужной для поиска БД К примеру, если БД находится в Веб, то в состав подимени JDBC-URL должен быть включен сетевой адресок, подчиняющийся последующим соглашениям:

//hostname:port/subsubname

Предполагая, что "dbnet JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement" - это протокол соединения к хосту в Веб, JDBC-URL может смотреться так:

jdbc:dbnet://wombat:356/fred


JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement

Класс Statement.

Объект Statement употребляется для выполнения SQL-запросов к БД. Существует три типа объектов Statement. Все три служат вроде бы конейнерами для выполнения SQL-выражений через JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement данное соединение: Statement, PreparedStatement, наследующий от Statement, и CallableStatement, наследующий от PreparedStatement. Они специализируются на разных типах запросов: Statement употребляется для выполненияпростых SQL-запросов без характеристик; PreparedStatement употребляется для выполнения прекомпилированных SQL-запросов с либо без входных (IN) характеристик; CallableStatement употребляется для вызовов хранимых процедур.

Создание объектов Statement

Как соединение с определенной JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement БД установлено, оно может употребляться для выполнения SQL-запросов. Объект Statement создается способом Connection.createStatement, как показано ниже:

Statement stmt = con.createStatement();

Посылаемое в БД SQL-выражение передается в качестве аргумента одному из способов объекта Statement для выполнения SQL-запроса:

ResultSet rs = stmt.executeQuery("SELECT a, b, c JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement FROM Table");

Выполнение запроса через объект Statement

Интерфейс Statement предоставляет три разных способа выполнения SQL-выражений: executeQuery, executeUpdate и execute, зависимо от SQL-запроса.

Способ executeQuery нужен для запросов, результатом которых является один единственный набор значений, таких как запросов SELECT.

Способ executeUpdate употребляется для выполнения операторов INSERT, UPDATE либо DELETE, также JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement для операторов DDL (Data Definition Language - язык определения данных), к примеру, CREATE TABLE и DROP TABLE. Способ executeUpdate возвращает целое число, показывающее, сколько строк было изменено. Для выражений типа CREATE TABLE и DROP TABLE, которые не оперируют над строчками, возвращаемое способом executeUpdate значение всегда равно нулю.

Способ execute JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement употребляется, когда операторы SQL возвращают более 1-го набора данных, более 1-го счетчика обновлений либо и то, и другое.

Все способы выполнения SQL-запросов закрывают предшествующий набор результатов (result set) у данного объекта Statement. Это значит, что перед тем как делать последующий запрос над этим же объектом Statement, нужно JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement окончить обработку результатов предшествующего (ResultSet).

класс PreparedStatement

В случае использования этого объекта программка подготавливает SQL-оператор с помощью способа prepareStatement (String sql) объекта Connection: берется SQL-строка и передается СУБД. Строчка проходит через стадии синтаксического анализа, оптимизации и генерирования плана выполнения, но не делает оператор SQL. Ссылка на план выполнения ворачивается JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement JDBC, который сохраняет ее в объекте PreparedStatement.

Одно из принципиальных параметров способа prepareStatement - возможность обработки входных характеристик. Они помечаются в операторе SQL эмблемой "?" на месте фактического значения. В программке Java проводится соответствие меж параметрами и способами setXXXX() - setInt, setFloat, setString и т.д., в согласовании с типами входных характеристик JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement. Все способы setXXXX() принимают в качестве характеристик значение параметра и указатель parameterIndex, который равен 1 для первого "?", 2 - для второго и т.д. Выполнение sql-оператора обеспечивается способами объекта PreparedStatement:

Объект PreparedStatement обеспечивает более резвое выполнение оператора SQL и является примером реализации динамического SQL.

PreparedStatement mySt=myCon.prepareStatement

("SELECT * FROM Users WHERE name = ? AND psw=?");

mySt.setString(1, "nam");

mySt.setString(2, "123");

int res=mySt.executeUpdate();

Закрытие объектов Statement

Объекты Statement запираются автоматом при помощи собирателя мусора виртуальной JDBC, создание SQL запросов, интерфейсы Statement, PreparedStatement машины Java. Все же рекомендуется закрывать их очевидно после того, как в их отпадает необходимость.



j-etap-kubka-rossii-2014-goda-po-parusnomu-sportu.html
j-etap-opredelenie-bloka.html
j-etap-podschet-sirih-predvaritelnih-ballov-po-shkalam.html