Java Database Connectivity

Поделись знанием:
Перейти к: навигация, поиск
JDBC
Тип

Data Access API

Последняя версия

JDBC 4.2 (декабрь 5, 2013 (2013-12-05))

Сайт

[:Шаблон:Javadoc:SE-guide :javadoc:se-guide]

К:Википедия:Статьи без изображений (тип: не указан)


JDBC (англ. Java DataBase Connectivity — соединение с базами данных на Java) — платформенно-независимый промышленный стандарт взаимодействия Java-приложений с различными СУБД, реализованный в виде пакета java.sql, входящего в состав Java SE.

JDBC основан на концепции так называемых драйверов, позволяющих получать соединение с базой данных по специально описанному URL. Драйверы могут загружаться динамически (во время работы программы). Загрузившись, драйвер сам регистрирует себя и вызывается автоматически, когда программа требует URL, содержащий протокол, за который драйвер отвечает.





История

Sun Microsystems выпустила JDBC как часть JDK 1.1 19-го февраля 1997 года[1]. С тех пор он является частью JSE. Классы JDBC находятся в пакетах Java java.sql и javax.sql. Начиная с версии 3.1, JDBC разрабатывался в рамках Java Community Process (JCP), который включает в себя стандартизованные спецификации для Java разработчиков.

Интерфейсы

JDBC API содержит два основных типа интерфейсов: первый — для разработчиков приложений и второй (более низкого уровня) — для разработчиков драйверов.

Соединение с базой данных описывается классом, реализующим интерфейс java.sql.Connection. Имея соединение с базой данных, можно создавать объекты типа Statement, служащие для исполнения запросов к базе данных на языке SQL.

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

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

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

Преимущества

Преимуществами JDBC считают:

  • Лёгкость разработки: разработчик может не знать специфики базы данных, с которой работает;
  • Код практически не меняется, если компания переходит на другую базу данных (количество изменений зависит исключительно от различий между диалектами SQL);
  • Не нужно устанавливать громоздкую клиентскую программу;
  • К любой базе можно подсоединиться через легко описываемый URL.

Примеры

Примеры кода

JDBC для MySQL
Данный пример использует свободный драйвер JDBC для MySQL, который легко устанавливается в большинстве дистрибутивов Linux через стандартные репозитории.
package javaapplication1;
import java.sql.*;

public class Main {

    public static void main(String[] args) throws SQLException {
        /**
         * эта строка загружает драйвер DB.
         * раскомментируйте если прописываете драйвер вручную
         */
        //Class.forName("com.mysql.jdbc.Driver");

        try {
            Connection conn = DriverManager.getConnection(
            "jdbc:mysql://localhost:3306/db_name",
            "user", "password");

            if (conn == null) {
                System.out.println("Нет соединения с БД!");
                System.exit(0);
            }
            
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM users");
    
            while (rs.next()) {
                System.out.println(rs.getRow() + ". " + rs.getString("firstname")
                        + "\t" + rs.getString("lastname"));
            }
    
            /**
             * stmt.close();
             * При закрытии Statement автоматически закрываются
             * все связанные с ним открытые объекты ResultSet
             */
            stmt.close();
        }
        catch (SQLException e) {
            e.printStackTrace();
        }
    }
}



Напишите отзыв о статье "Java Database Connectivity"

Примечания

  1. [java.cnam.fr/iagl/biblio/spec/jdbc-3_0-fr-spec.pdf Спецификация JDBC 3.0]. www.sun.com. Sun Microsystems. [www.webcitation.org/68etKAllc Архивировано из первоисточника 24 июня 2012].

Ссылки

  • [www.intuit.ru/studies/courses/5/5/lecture/156?page=3 Взаимодействие с базой данных в Java-программах]  (рус.)
  • [java.sun.com/products/jdbc/overview.html Официальная страница JDBC]  (англ.)
  • [java.sun.com/docs/books/tutorial/jdbc/index.html Учебник JDBC]  (англ.)

Отрывок, характеризующий Java Database Connectivity

– Я говорю не про вас, – сказал он, – я вас не знаю и, признаюсь, не желаю знать. Я говорю вообще про штабных.
– А я вам вот что скажу, – с спокойною властию в голосе перебил его князь Андрей. – Вы хотите оскорбить меня, и я готов согласиться с вами, что это очень легко сделать, ежели вы не будете иметь достаточного уважения к самому себе; но согласитесь, что и время и место весьма дурно для этого выбраны. На днях всем нам придется быть на большой, более серьезной дуэли, а кроме того, Друбецкой, который говорит, что он ваш старый приятель, нисколько не виноват в том, что моя физиономия имела несчастие вам не понравиться. Впрочем, – сказал он, вставая, – вы знаете мою фамилию и знаете, где найти меня; но не забудьте, – прибавил он, – что я не считаю нисколько ни себя, ни вас оскорбленным, и мой совет, как человека старше вас, оставить это дело без последствий. Так в пятницу, после смотра, я жду вас, Друбецкой; до свидания, – заключил князь Андрей и вышел, поклонившись обоим.
Ростов вспомнил то, что ему надо было ответить, только тогда, когда он уже вышел. И еще более был он сердит за то, что забыл сказать это. Ростов сейчас же велел подать свою лошадь и, сухо простившись с Борисом, поехал к себе. Ехать ли ему завтра в главную квартиру и вызвать этого ломающегося адъютанта или, в самом деле, оставить это дело так? был вопрос, который мучил его всю дорогу. То он с злобой думал о том, с каким бы удовольствием он увидал испуг этого маленького, слабого и гордого человечка под его пистолетом, то он с удивлением чувствовал, что из всех людей, которых он знал, никого бы он столько не желал иметь своим другом, как этого ненавидимого им адъютантика.


На другой день свидания Бориса с Ростовым был смотр австрийских и русских войск, как свежих, пришедших из России, так и тех, которые вернулись из похода с Кутузовым. Оба императора, русский с наследником цесаревичем и австрийский с эрцгерцогом, делали этот смотр союзной 80 титысячной армии.
С раннего утра начали двигаться щегольски вычищенные и убранные войска, выстраиваясь на поле перед крепостью. То двигались тысячи ног и штыков с развевавшимися знаменами и по команде офицеров останавливались, заворачивались и строились в интервалах, обходя другие такие же массы пехоты в других мундирах; то мерным топотом и бряцанием звучала нарядная кавалерия в синих, красных, зеленых шитых мундирах с расшитыми музыкантами впереди, на вороных, рыжих, серых лошадях; то, растягиваясь с своим медным звуком подрагивающих на лафетах, вычищенных, блестящих пушек и с своим запахом пальников, ползла между пехотой и кавалерией артиллерия и расставлялась на назначенных местах. Не только генералы в полной парадной форме, с перетянутыми донельзя толстыми и тонкими талиями и красневшими, подпертыми воротниками, шеями, в шарфах и всех орденах; не только припомаженные, расфранченные офицеры, но каждый солдат, – с свежим, вымытым и выбритым лицом и до последней возможности блеска вычищенной аммуницией, каждая лошадь, выхоленная так, что, как атлас, светилась на ней шерсть и волосок к волоску лежала примоченная гривка, – все чувствовали, что совершается что то нешуточное, значительное и торжественное. Каждый генерал и солдат чувствовали свое ничтожество, сознавая себя песчинкой в этом море людей, и вместе чувствовали свое могущество, сознавая себя частью этого огромного целого.
С раннего утра начались напряженные хлопоты и усилия, и в 10 часов всё пришло в требуемый порядок. На огромном поле стали ряды. Армия вся была вытянута в три линии. Спереди кавалерия, сзади артиллерия, еще сзади пехота.
Между каждым рядом войск была как бы улица. Резко отделялись одна от другой три части этой армии: боевая Кутузовская (в которой на правом фланге в передней линии стояли павлоградцы), пришедшие из России армейские и гвардейские полки и австрийское войско. Но все стояли под одну линию, под одним начальством и в одинаковом порядке.
Как ветер по листьям пронесся взволнованный шопот: «едут! едут!» Послышались испуганные голоса, и по всем войскам пробежала волна суеты последних приготовлений.
Впереди от Ольмюца показалась подвигавшаяся группа. И в это же время, хотя день был безветренный, легкая струя ветра пробежала по армии и чуть заколебала флюгера пик и распущенные знамена, затрепавшиеся о свои древки. Казалось, сама армия этим легким движением выражала свою радость при приближении государей. Послышался один голос: «Смирно!» Потом, как петухи на заре, повторились голоса в разных концах. И всё затихло.