SlideShare a Scribd company logo
1 of 12
JDBC in Java
Tutorial for students of universities
Author: Dudnik Oxana
JDBC
• JDBC (англ. Java DataBase
Connectivity — соединение с базами
данных на Java) — позволяет Java 
приложениям получить доступ к 
данным различных СУБД. 
Установка соединения. Классы
DriverManager и Connection 
• Прежде чем использовать драйвер, его 
необходимо сперва 
зарегистрировать. Регистрируется 
драйвер очень просто:
             Class.forName("DriverName");
Класс DriverManager 
• Класс DriverManager используется для установления 
соединения с базой данных. Для этого необходимо указать ему 
специальный URL адрес, а также логин и пароль пользователя, 
зарегистрированного в СУБД.  URL — это специальная строка, 
имеющая следующий формат:
• jdbc:<subprotocol>:<subname>
где <subprotocol> — имя драйвера или имя механизма 
подключения,
<subname> — это строка, в которой указывается хост, порт, имя 
базы данных.
• Например, для MySQL URL может быть таким:
• jdbc:mysql://localhost:3306/MyDataBaseName Для Oracle:
• jdbc:oracle:thin:@localhost:1521/MyDataBaseName 
Connection c = DriverManager.getConnection("URL",
"User_Login", "User_Password");
Посылка запросов. Классы
Statement и ResultSet
• После того, как соединение с базой данных установлено, мы можем
отправлять запросы. Для этого нам понадобиться класс Statement.
Объект Statement предназначен для хранения SQL команд и может
быть создан следующим образом:
• Statement st = c.createStatement();
• После этого мы можем выполнять запросы. Результаты запроса будут
храниться в объекте класса ResultSet.
ResultSet rs = st.executeQuery("select * from
Table_Name");
• Данный запрос выберет все данные из таблицы Table_Name и вернет
объект ResultSet. Также могут быть полезны методы
st.execute(«Запрос»); Но тогда объект ResultSet надо получать
отдельным методом st.getResultSet(). Также есть метод
st.executeUpdate(«Запрос»); Вернет число строк, подвергшихся
изменению.
PreparedStatement
• Для параметризованного SQL запроса используется
класс PreparedStatement. Он может быть
использован, например, так:
PreparedStatement pst =
c.prepareStatement("select * from MoCoUser
where login = ?");//? - это параметр
pst.setString(1, "user");//установление
значения параметра. Обратите внимание:
нумерация параметров начинается не с 0, а с 1!
ResultSet prs = pst.executeQuery();
CallableStatement
• Для вызова функции или процедуры
используется класс CallableStatement:
• CallableStatement cst =
c.prepareCall("CALL proc_name(?,?)");//В
процедуру также можно передавать
параметры
cst.setInt(1, 100);
cst.setString(2, "String");
ResultSet rs = cst.executeQuery();
Обработка результатов
запроса. Класс ResultSet
• Запрос выполнен. Результатом SQL запроса к БД
будет таблица. В java результат сохраняется в
объекте класса ResultSet. Давайте их выведем.
• Для перехода по строкам вперед и назад в классе
ResultSet используются методы next() и previous().
Для перехода к первой или последней строке first() и
last() соответственно. Обработка результатов в цикле
будет выглядеть примерно следующим образом:
• while(rs.next()){
//обработка результатов
}
• Где rs — это объект класса ResultSet. Метод next()
возвращает true, если есть следующая строка, false
— больше строк нет.
• package ru.javaxblog.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCExample {
public static void main(String []args){
String user = "User_Login";//Логин пользователя
String password = "User_Password";//Пароль пользователя
String url = "jdbc:oracle:thin:@localhost:1521/MyDBName";//URL адрес
String driver = "oracle.jdbc.driver.OracleDriver";//Имя драйвера
try {
Class.forName(driver);//Регистрируем драйвер
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Connection c = null;//Соединение с БД
try{
c = DriverManager.getConnection(url, user, password);//Установка
соединения с БД
Statement st = c.createStatement();//Готовим запрос
ResultSet rs = st.executeQuery("select * from
Table_Name");//Выполняем запрос к БД, результат в переменной rs
while(rs.next()){
System.out.println(rs.getString("Login"));//Последовательно для
каждой строки выводим значение из колонки ColumnName
}
} catch(Exception e){
e.printStackTrace();
}
Литература
• http://www.quizful.net/post/using-jdbc
• http://www.mkyong.com/jdbc/how-to-connect-t
• http://www.javatpoint.com/java-jdbc
• http://www.quizful.net/post/using-jdbc

More Related Content

What's hot

Java осень 2012 лекция 8
Java осень 2012 лекция 8Java осень 2012 лекция 8
Java осень 2012 лекция 8Technopark
 
Java осень 2014 занятие 8
Java осень 2014 занятие 8Java осень 2014 занятие 8
Java осень 2014 занятие 8Technopark
 
Java осень 2014 занятие 7
Java осень 2014 занятие 7Java осень 2014 занятие 7
Java осень 2014 занятие 7Technopark
 
Liquibase: Enterprise Edition
Liquibase: Enterprise EditionLiquibase: Enterprise Edition
Liquibase: Enterprise EditionAndrei Solntsev
 
Введение в Spring
Введение в SpringВведение в Spring
Введение в SpringUnguryan Vitaliy
 
использование Hibernate java persistence.part 4.
использование Hibernate java persistence.part 4.использование Hibernate java persistence.part 4.
использование Hibernate java persistence.part 4.Asya Dudnik
 
Введение в hibernate
Введение в hibernateВведение в hibernate
Введение в hibernateUnguryan Vitaliy
 
Aleksey Mashanov Rit
Aleksey  Mashanov RitAleksey  Mashanov Rit
Aleksey Mashanov Ritrit2010
 
Сетевое взаимодействие
Сетевое взаимодействиеСетевое взаимодействие
Сетевое взаимодействиеUnguryan Vitaliy
 
Ice Php Framework Preview Release
Ice Php Framework Preview ReleaseIce Php Framework Preview Release
Ice Php Framework Preview ReleaseDenis Shestakov
 

What's hot (13)

Java осень 2012 лекция 8
Java осень 2012 лекция 8Java осень 2012 лекция 8
Java осень 2012 лекция 8
 
Java осень 2014 занятие 8
Java осень 2014 занятие 8Java осень 2014 занятие 8
Java осень 2014 занятие 8
 
Java осень 2014 занятие 7
Java осень 2014 занятие 7Java осень 2014 занятие 7
Java осень 2014 занятие 7
 
Liquibase: Enterprise Edition
Liquibase: Enterprise EditionLiquibase: Enterprise Edition
Liquibase: Enterprise Edition
 
Введение в Spring
Введение в SpringВведение в Spring
Введение в Spring
 
использование Hibernate java persistence.part 4.
использование Hibernate java persistence.part 4.использование Hibernate java persistence.part 4.
использование Hibernate java persistence.part 4.
 
Введение в hibernate
Введение в hibernateВведение в hibernate
Введение в hibernate
 
Doctrine 2
Doctrine 2Doctrine 2
Doctrine 2
 
Aleksey Mashanov Rit
Aleksey  Mashanov RitAleksey  Mashanov Rit
Aleksey Mashanov Rit
 
лабраб 7
лабраб 7лабраб 7
лабраб 7
 
Сетевое взаимодействие
Сетевое взаимодействиеСетевое взаимодействие
Сетевое взаимодействие
 
п2 11 12
п2 11 12п2 11 12
п2 11 12
 
Ice Php Framework Preview Release
Ice Php Framework Preview ReleaseIce Php Framework Preview Release
Ice Php Framework Preview Release
 

Viewers also liked

Jdbc Dao it-slideshares.blogspot.com
Jdbc Dao it-slideshares.blogspot.comJdbc Dao it-slideshares.blogspot.com
Jdbc Dao it-slideshares.blogspot.comphanleson
 
Different type of_software_testing - copy
Different type of_software_testing - copyDifferent type of_software_testing - copy
Different type of_software_testing - copyYogita patil
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsHassan A-j
 
Work with my_sql_-_database_in_java
Work with my_sql_-_database_in_javaWork with my_sql_-_database_in_java
Work with my_sql_-_database_in_javaAsya Dudnik
 
Data Access Layer как страховка на случай миграции СУБД
Data Access Layer как страховка на случай миграции СУБДData Access Layer как страховка на случай миграции СУБД
Data Access Layer как страховка на случай миграции СУБДCUSTIS
 
SDLC and Software Process Models
SDLC and Software Process ModelsSDLC and Software Process Models
SDLC and Software Process ModelsNana Sarpong
 
Java Programming- Introduction to Java Applet Programs
Java Programming- Introduction to Java Applet ProgramsJava Programming- Introduction to Java Applet Programs
Java Programming- Introduction to Java Applet ProgramsTrinity Dwarka
 
Lecture data base programming part2
Lecture data base programming part2Lecture data base programming part2
Lecture data base programming part2ganzorigb
 
Types of Software testing
Types of  Software testingTypes of  Software testing
Types of Software testingMakan Singh
 
Lecture data base programming part1
Lecture data base programming part1Lecture data base programming part1
Lecture data base programming part1ganzorigb
 
Коллекции в Java
Коллекции в JavaКоллекции в Java
Коллекции в Javametaform
 
Database Connectivity with JDBC
Database Connectivity with JDBCDatabase Connectivity with JDBC
Database Connectivity with JDBCDudy Ali
 
Работа с БД в Java
Работа с БД в JavaРабота с БД в Java
Работа с БД в Javametaform
 

Viewers also liked (20)

jdbc
jdbcjdbc
jdbc
 
JDBC Driver Types
JDBC Driver TypesJDBC Driver Types
JDBC Driver Types
 
Jdbc Dao it-slideshares.blogspot.com
Jdbc Dao it-slideshares.blogspot.comJdbc Dao it-slideshares.blogspot.com
Jdbc Dao it-slideshares.blogspot.com
 
Data Access with JDBC
Data Access with JDBCData Access with JDBC
Data Access with JDBC
 
Different type of_software_testing - copy
Different type of_software_testing - copyDifferent type of_software_testing - copy
Different type of_software_testing - copy
 
JDBC – Java Database Connectivity
JDBC – Java Database ConnectivityJDBC – Java Database Connectivity
JDBC – Java Database Connectivity
 
Jdbc Ppt
Jdbc PptJdbc Ppt
Jdbc Ppt
 
Jdbc
JdbcJdbc
Jdbc
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
02 software process_models
02 software process_models02 software process_models
02 software process_models
 
Work with my_sql_-_database_in_java
Work with my_sql_-_database_in_javaWork with my_sql_-_database_in_java
Work with my_sql_-_database_in_java
 
Data Access Layer как страховка на случай миграции СУБД
Data Access Layer как страховка на случай миграции СУБДData Access Layer как страховка на случай миграции СУБД
Data Access Layer как страховка на случай миграции СУБД
 
SDLC and Software Process Models
SDLC and Software Process ModelsSDLC and Software Process Models
SDLC and Software Process Models
 
Java Programming- Introduction to Java Applet Programs
Java Programming- Introduction to Java Applet ProgramsJava Programming- Introduction to Java Applet Programs
Java Programming- Introduction to Java Applet Programs
 
Lecture data base programming part2
Lecture data base programming part2Lecture data base programming part2
Lecture data base programming part2
 
Types of Software testing
Types of  Software testingTypes of  Software testing
Types of Software testing
 
Lecture data base programming part1
Lecture data base programming part1Lecture data base programming part1
Lecture data base programming part1
 
Коллекции в Java
Коллекции в JavaКоллекции в Java
Коллекции в Java
 
Database Connectivity with JDBC
Database Connectivity with JDBCDatabase Connectivity with JDBC
Database Connectivity with JDBC
 
Работа с БД в Java
Работа с БД в JavaРабота с БД в Java
Работа с БД в Java
 

Similar to Jdbc in java

C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.Igor Shkulipa
 
Основы Java. 5. Databases
Основы Java. 5. DatabasesОсновы Java. 5. Databases
Основы Java. 5. DatabasesSergey Nemchinsky
 
Unit test быстрый старт
Unit test быстрый стартUnit test быстрый старт
Unit test быстрый стартAntonio
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Fedor Malyshkin
 
Александр Сычев "Разделяй и властвуй: CQRS в iOS"
Александр Сычев "Разделяй и властвуй: CQRS в iOS"Александр Сычев "Разделяй и властвуй: CQRS в iOS"
Александр Сычев "Разделяй и властвуй: CQRS в iOS"IT Event
 
Advanced Sql Injection
Advanced Sql InjectionAdvanced Sql Injection
Advanced Sql InjectionDmitry Evteev
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Andrey Rebrov
 
05 db server_deployment_ru
05 db server_deployment_ru05 db server_deployment_ru
05 db server_deployment_rumcroitor
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?phpdevby
 
Новости Global summit 2015
Новости Global summit 2015Новости Global summit 2015
Новости Global summit 2015Timur Safin
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиZestranec
 
Alexander Dymo - Barcamp 2009 - Faster Higher Sql
Alexander Dymo - Barcamp 2009 - Faster Higher SqlAlexander Dymo - Barcamp 2009 - Faster Higher Sql
Alexander Dymo - Barcamp 2009 - Faster Higher SqlAlexander Dymo
 
Adymo Barcamp Presentation Faster Higher Sql
Adymo Barcamp Presentation Faster Higher SqlAdymo Barcamp Presentation Faster Higher Sql
Adymo Barcamp Presentation Faster Higher SqlOleksandr Petrov
 
Паттерны проектирования источников данных
Паттерны проектирования источников данныхПаттерны проектирования источников данных
Паттерны проектирования источников данныхAlex Polorotov
 
паттерны проектирования источников данных
паттерны проектирования источников данныхпаттерны проектирования источников данных
паттерны проектирования источников данныхVitaliy Trenkenshu
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NETPositive Hack Days
 

Similar to Jdbc in java (20)

C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.
 
Основы Java. 5. Databases
Основы Java. 5. DatabasesОсновы Java. 5. Databases
Основы Java. 5. Databases
 
PT Hackday#2
PT Hackday#2PT Hackday#2
PT Hackday#2
 
Расширение библиотеки Slick
Расширение библиотеки SlickРасширение библиотеки Slick
Расширение библиотеки Slick
 
Lec 13
Lec 13Lec 13
Lec 13
 
Unit test быстрый старт
Unit test быстрый стартUnit test быстрый старт
Unit test быстрый старт
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)
 
Александр Сычев "Разделяй и властвуй: CQRS в iOS"
Александр Сычев "Разделяй и властвуй: CQRS в iOS"Александр Сычев "Разделяй и властвуй: CQRS в iOS"
Александр Сычев "Разделяй и властвуй: CQRS в iOS"
 
Advanced Sql Injection
Advanced Sql InjectionAdvanced Sql Injection
Advanced Sql Injection
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
 
PT MIFI Labsql
PT MIFI LabsqlPT MIFI Labsql
PT MIFI Labsql
 
05 db server_deployment_ru
05 db server_deployment_ru05 db server_deployment_ru
05 db server_deployment_ru
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?
 
Новости Global summit 2015
Новости Global summit 2015Новости Global summit 2015
Новости Global summit 2015
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
 
Alexander Dymo - Barcamp 2009 - Faster Higher Sql
Alexander Dymo - Barcamp 2009 - Faster Higher SqlAlexander Dymo - Barcamp 2009 - Faster Higher Sql
Alexander Dymo - Barcamp 2009 - Faster Higher Sql
 
Adymo Barcamp Presentation Faster Higher Sql
Adymo Barcamp Presentation Faster Higher SqlAdymo Barcamp Presentation Faster Higher Sql
Adymo Barcamp Presentation Faster Higher Sql
 
Паттерны проектирования источников данных
Паттерны проектирования источников данныхПаттерны проектирования источников данных
Паттерны проектирования источников данных
 
паттерны проектирования источников данных
паттерны проектирования источников данныхпаттерны проектирования источников данных
паттерны проектирования источников данных
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
 

More from Asya Dudnik

Get started with docker &amp; dev ops
Get started with docker &amp; dev opsGet started with docker &amp; dev ops
Get started with docker &amp; dev opsAsya Dudnik
 
Get started with docker &amp; dev ops
Get started with docker &amp; dev opsGet started with docker &amp; dev ops
Get started with docker &amp; dev opsAsya Dudnik
 
Work with xml in java
Work with xml in javaWork with xml in java
Work with xml in javaAsya Dudnik
 
Java.fundamentals
Java.fundamentalsJava.fundamentals
Java.fundamentalsAsya Dudnik
 
Data bases in pictures
Data bases in picturesData bases in pictures
Data bases in picturesAsya Dudnik
 
Hibernate&ejb3 . part3.
Hibernate&ejb3 . part3.Hibernate&ejb3 . part3.
Hibernate&ejb3 . part3.Asya Dudnik
 
использование Hibernate java persistence.part 2.
использование Hibernate java persistence.part 2.использование Hibernate java persistence.part 2.
использование Hibernate java persistence.part 2.Asya Dudnik
 
Work with my sql database in java
Work with my sql   database in javaWork with my sql   database in java
Work with my sql database in javaAsya Dudnik
 
Java.fundamentals
Java.fundamentalsJava.fundamentals
Java.fundamentalsAsya Dudnik
 
Java fx for interface
Java fx for interfaceJava fx for interface
Java fx for interfaceAsya Dudnik
 
Java fx for interface
Java fx for interfaceJava fx for interface
Java fx for interfaceAsya Dudnik
 
Apache maven in java projects
Apache maven in java projectsApache maven in java projects
Apache maven in java projectsAsya Dudnik
 
Ejb in java. part 1.
Ejb in java. part 1.Ejb in java. part 1.
Ejb in java. part 1.Asya Dudnik
 
Work with xml in java
Work with xml in javaWork with xml in java
Work with xml in javaAsya Dudnik
 

More from Asya Dudnik (20)

Get started with docker &amp; dev ops
Get started with docker &amp; dev opsGet started with docker &amp; dev ops
Get started with docker &amp; dev ops
 
Get started with docker &amp; dev ops
Get started with docker &amp; dev opsGet started with docker &amp; dev ops
Get started with docker &amp; dev ops
 
Oracle database
Oracle databaseOracle database
Oracle database
 
Work with xml in java
Work with xml in javaWork with xml in java
Work with xml in java
 
Java.fundamentals
Java.fundamentalsJava.fundamentals
Java.fundamentals
 
Data bases in pictures
Data bases in picturesData bases in pictures
Data bases in pictures
 
Hibernate&ejb3 . part3.
Hibernate&ejb3 . part3.Hibernate&ejb3 . part3.
Hibernate&ejb3 . part3.
 
использование Hibernate java persistence.part 2.
использование Hibernate java persistence.part 2.использование Hibernate java persistence.part 2.
использование Hibernate java persistence.part 2.
 
Work with my sql database in java
Work with my sql   database in javaWork with my sql   database in java
Work with my sql database in java
 
Java.fundamentals
Java.fundamentalsJava.fundamentals
Java.fundamentals
 
Web&java. gwt
Web&java. gwtWeb&java. gwt
Web&java. gwt
 
Web&java.jsf.
Web&java.jsf.Web&java.jsf.
Web&java.jsf.
 
Web&java. jsp
Web&java. jspWeb&java. jsp
Web&java. jsp
 
Web&java. jsp
Web&java. jspWeb&java. jsp
Web&java. jsp
 
Java fx for interface
Java fx for interfaceJava fx for interface
Java fx for interface
 
Java fx for interface
Java fx for interfaceJava fx for interface
Java fx for interface
 
Apache maven in java projects
Apache maven in java projectsApache maven in java projects
Apache maven in java projects
 
Threads in java
Threads in javaThreads in java
Threads in java
 
Ejb in java. part 1.
Ejb in java. part 1.Ejb in java. part 1.
Ejb in java. part 1.
 
Work with xml in java
Work with xml in javaWork with xml in java
Work with xml in java
 

Jdbc in java

  • 1. JDBC in Java Tutorial for students of universities Author: Dudnik Oxana
  • 2.
  • 3.
  • 4. JDBC • JDBC (англ. Java DataBase Connectivity — соединение с базами данных на Java) — позволяет Java  приложениям получить доступ к  данным различных СУБД. 
  • 5. Установка соединения. Классы DriverManager и Connection  • Прежде чем использовать драйвер, его  необходимо сперва  зарегистрировать. Регистрируется  драйвер очень просто:              Class.forName("DriverName");
  • 6. Класс DriverManager  • Класс DriverManager используется для установления  соединения с базой данных. Для этого необходимо указать ему  специальный URL адрес, а также логин и пароль пользователя,  зарегистрированного в СУБД.  URL — это специальная строка,  имеющая следующий формат: • jdbc:<subprotocol>:<subname> где <subprotocol> — имя драйвера или имя механизма  подключения, <subname> — это строка, в которой указывается хост, порт, имя  базы данных. • Например, для MySQL URL может быть таким: • jdbc:mysql://localhost:3306/MyDataBaseName Для Oracle: • jdbc:oracle:thin:@localhost:1521/MyDataBaseName  Connection c = DriverManager.getConnection("URL", "User_Login", "User_Password");
  • 7. Посылка запросов. Классы Statement и ResultSet • После того, как соединение с базой данных установлено, мы можем отправлять запросы. Для этого нам понадобиться класс Statement. Объект Statement предназначен для хранения SQL команд и может быть создан следующим образом: • Statement st = c.createStatement(); • После этого мы можем выполнять запросы. Результаты запроса будут храниться в объекте класса ResultSet. ResultSet rs = st.executeQuery("select * from Table_Name"); • Данный запрос выберет все данные из таблицы Table_Name и вернет объект ResultSet. Также могут быть полезны методы st.execute(«Запрос»); Но тогда объект ResultSet надо получать отдельным методом st.getResultSet(). Также есть метод st.executeUpdate(«Запрос»); Вернет число строк, подвергшихся изменению.
  • 8. PreparedStatement • Для параметризованного SQL запроса используется класс PreparedStatement. Он может быть использован, например, так: PreparedStatement pst = c.prepareStatement("select * from MoCoUser where login = ?");//? - это параметр pst.setString(1, "user");//установление значения параметра. Обратите внимание: нумерация параметров начинается не с 0, а с 1! ResultSet prs = pst.executeQuery();
  • 9. CallableStatement • Для вызова функции или процедуры используется класс CallableStatement: • CallableStatement cst = c.prepareCall("CALL proc_name(?,?)");//В процедуру также можно передавать параметры cst.setInt(1, 100); cst.setString(2, "String"); ResultSet rs = cst.executeQuery();
  • 10. Обработка результатов запроса. Класс ResultSet • Запрос выполнен. Результатом SQL запроса к БД будет таблица. В java результат сохраняется в объекте класса ResultSet. Давайте их выведем. • Для перехода по строкам вперед и назад в классе ResultSet используются методы next() и previous(). Для перехода к первой или последней строке first() и last() соответственно. Обработка результатов в цикле будет выглядеть примерно следующим образом: • while(rs.next()){ //обработка результатов } • Где rs — это объект класса ResultSet. Метод next() возвращает true, если есть следующая строка, false — больше строк нет.
  • 11. • package ru.javaxblog.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCExample { public static void main(String []args){ String user = "User_Login";//Логин пользователя String password = "User_Password";//Пароль пользователя String url = "jdbc:oracle:thin:@localhost:1521/MyDBName";//URL адрес String driver = "oracle.jdbc.driver.OracleDriver";//Имя драйвера try { Class.forName(driver);//Регистрируем драйвер } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } Connection c = null;//Соединение с БД try{ c = DriverManager.getConnection(url, user, password);//Установка соединения с БД Statement st = c.createStatement();//Готовим запрос ResultSet rs = st.executeQuery("select * from Table_Name");//Выполняем запрос к БД, результат в переменной rs while(rs.next()){ System.out.println(rs.getString("Login"));//Последовательно для каждой строки выводим значение из колонки ColumnName } } catch(Exception e){ e.printStackTrace(); }
  • 12. Литература • http://www.quizful.net/post/using-jdbc • http://www.mkyong.com/jdbc/how-to-connect-t • http://www.javatpoint.com/java-jdbc • http://www.quizful.net/post/using-jdbc