2011-01-27 4 views
0

Привет, ребята Я новичок в программировании на Java. Возможно, кто-нибудь предложит мне хорошее чтение для подключения JDBC. Мне нужно подключить мою программу Java к базе данных. Кроме того, при поиске в интернете я нашел следующее заявление немного запутаннымJDBC-подключение

1)Connection dbConnection=DriverManager.getConnection(url,”loginName”,”Password”) 

2)Statement statement = dbConnection.createStatement(); 

Во втором заявлении «createStatement» является метод «Connection Interface».

Как я могу назвать метод интерфейса?

ответ

4

Аджай, JDBC является API (стандарт), опубликованных Sun (теперь Oracle :-() ..

Когда ты кода, вы используете API для написания кода на основе интерфейсов (ПРИМЕЧАНИЕ: Откройте javadoc и посмотрите ... JDBC - это набор интерфейсов. пакет java.sql. *)

Если вы хотите запустить приложение, вы должны использовать реализацию, предоставленную поставщиком базы данных ... Все Поставщики БД, предоставляющие поддержку JDBC, должны обеспечить эту реализацию. classes12.jar или ojdbc14.jar и т. д. Откройте этот файл jar в утилите zip, и вы увидите классы java.sql.Interface и т. д.

это конкретные классы, реализующие интерфейсы, которые вы спросил в вашем вопросе ....

ТАК, вы фактически используете конкретный класс. Подробнее о наследовании в java.

это может помочь вам

http://www.oracle.com/technetwork/java/overview-141217.html

http://download.oracle.com/javase/tutorial/jdbc/basics/index.html

http://java.sun.com/developer/onlineTraining/Database/JDBC20Intro/JDBC20.html

http://www.roseindia.net/jdbc/jdbc.shtml [хорошие руки на уроке]

надеюсь, что это помогает ...

Спасибо.

+0

Кстати, Ajay, посмотрите на исходные операторы Java перед кодом, который вы предоставили ... Class.forName ("SQL_DRIVER_CLASS_NAME"); – Ayusman

+0

Thanx Ayusman. Это означает, что Interafce «Connection» и «statement» реализованы поставщиками Db. Я знаю, что это и послужило причиной моего смущения. –

+0

Правильно Ajay, Sun (теперь оракул) предоставляет спецификацию или API, поскольку мы называем это набором интерфейсов ... поставщик использует API, пишет реализации для них, потому что только они имеют четкое представление о том, как реализовать их для их базу данных и предоставить нам драйвер типа 4. Вы должны использовать драйвер для подключения к БД и выполнять различные операции, такие как создание соединений, выполнение операторов SQL и т. Д. И т. Д. java.sql. * - отличный пример дизайна по интерфейсу. Мне нравится называть это методом воронки, в отличие от использования абстрактных классов (воронка в подходе) :-) – Ayusman

-1

Это так просто, так что вы можете начать here и простой пример here

+0

У меня был еще один вопрос. Как я могу назвать метод интерфейса? –

+0

Этот вопрос не связан с jdbc, вы должны начать с руководства по интерфейсу java. создайте класс, реализующий этот интерфейс и реализующий метод в этом классе, и вызовите так же, как простой метод класса –

+1

@AjaySingh вы не вызываете метод интерфейса. Когда вы используете драйвер JDBC, он автоматически предоставляет вам ссылку на ОСУЩЕСТВЛЕНИЕ интерфейса, написанного поставщиком базы данных. Таким образом, вы на самом деле вызываете методы на объекте класса, который реализует интерфейс. Таким образом, драйвер jdbc type 4 из oracle будет иметь конкретный класс, называемый оператором, который реализует интерфейс java.sql.Statement. Надеюсь, ты это догадался. – Ayusman

4

В дополнение к официальной ссылке, предоставленной hilal, я объясню, как работает JDBC.

JDBC - это стандарт. Он определяет набор интерфейсов. Тогда каждый JDBC-драйвер, то есть конкретная реализация для конкретной базы данных, должен точно следовать этим интерфейсам.

Затем водитель регистрирует себя в менеджере драйверов (ранее вы должны были сделать это с Class.forName(..), а при вызове DriverManager.getConnection(..), правильный драйвер выбран на основании переданного URL, и это инициализирует соединение.

Теперь о том, что соединение и ваш последний вопрос - если вы выведете connection.getClass(), вы получите com.mysql.driver.ConnectionImpl (например). Это означает, что драйвер jdbc предоставил реализацию интерфейса Connection, но вам не нужно знать о классах каждого драйвера - вам нужно только знать интерфейсы JDBC.

Это, я думаю, вы должны прочитать немного больше не только о JDBC, но и об интерфейсах и полиморфизме в целом. Вы ссылаетесь на объект по интерфейсу, но объект всегда является экземпляром конкретного класса, который реализует интерфейс.

1

JDBC api, который определяется Oracle (Первоначально Sun Microsystems) - - Набор интерфейсов должен реализовываться конкретным поставщиком JDBC.

Скажите, например, если вы используете MySql Driver, то люди MySql должны реализовать все интерфейсы, определенные Oracle (Sun изначально).