Содержание
- 2. JDBC – программный пакет для работы с БД Базы данных: учебный курс Схема работы с БД
- 3. JDBC – программный пакет для работы с БД Базы данных: учебный курс Пример программы import java.sql.*;
- 4. JDBC – программный пакет для работы с БД Базы данных: учебный курс Загрузка драйвера и установление
- 5. JDBC – программный пакет для работы с БД Базы данных: учебный курс Интерфейс Connection Создание «предложений»
- 6. JDBC – программный пакет для работы с БД Базы данных: учебный курс Создаем в базе данных
- 7. JDBC – программный пакет для работы с БД Базы данных: учебный курс Параметризованные SQL-предложения Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); try
- 8. JDBC – программный пакет для работы с БД Базы данных: учебный курс Получение данных с помощью
- 9. JDBC – программный пакет для работы с БД Базы данных: учебный курс Исследование полученных данных private
- 10. JDBC – программный пакет для работы с БД Базы данных: учебный курс Какую еще информацию можно
- 11. JDBC – программный пакет для работы с БД Базы данных: учебный курс Работа с курсором: изменение,
- 12. JDBC – программный пакет для работы с БД Базы данных: учебный курс Если курсор перемещаемый (TYPE_SCROLL_SENSITIVE),
- 13. JDBC – программный пакет для работы с БД Базы данных: учебный курс Если курсор «заменяемый» (TYPE_CONCUR_UPDATEABLE),
- 15. Скачать презентацию
Слайд 2JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Схема работы
JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Схема работы

Загрузить класс(ы), реализующие необходимые драйверы
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Установить соединение с БД, используя загруженный драйвер
DriverManager.getConnection("jdbc:odbc:dsn");
Создать объект(ы) для исполнения SQL-команд
connection.createStatement();
Исполнять необходимые SQL-команды
stmt.executeUpdate("Delete From MyTable Where Id=1");
stmt.executeQuery("Select * From MyTable");
Обрабатывать полученные таблицы
result.getString("fieldName");
Закрыть открытые соединения
connection.close();
Слайд 3JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Пример программы
import
JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Пример программы
import

public static void main(String[] args) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:dsn");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("Select * From positions");
while (rs.next()) {
String s = rs.getString("name");
System.out.println("Position name = " + s);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
try { conn.close(); } catch (SQLException e) {}
}
Слайд 4JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Загрузка драйвера
JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Загрузка драйвера

При загрузке класса драйвера он регистрируется в DriverManager.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
com.mysql.jdbc.Driver.class;
import com.microsoft.jdbc.sqlserver.*;
Driver driver = new SQLServerDriver();
Установить соединение с БД можно, используя менеджер
Connection conn =
DriverManager.getConnection("jdbc:odbc:dsn");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test","root","root");
Properties props = new Properties();
props.put("user", "admin");
props.put("password", "myPwd");
Connection conn = driver.connect(
"jdbc:microsoft:sqlserver://localhost:1433" , props);
Слайд 5JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Интерфейс Connection
Создание
JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Интерфейс Connection
Создание

Работа с транзакциями connection.setAutoCommit(false); connection.commit(); connection.rollback();
Закрытие соединения connection.close();
Слайд 6JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Создаем в
JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Создаем в

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
try {
Connection conn = DriverManager.getConnection(
"jdbc:odbc:projects");
Statement stmt = conn.createStatement();
String createTable = "CREATE TABLE roles (“ +
"Sortorder INTEGER, Name VARCHAR, PRIMARY KEY (Sortorder))“;
stmt.executeUpdate(createTable);
String insertData1 = "INSERT INTO roles (Sortorder, Name) " +
"VALUES(10, 'Project Leader')“;
String insertData2 = "INSERT INTO roles (Sortorder, Name) " +
"VALUES(20, 'Developer')";
stmt.executeUpdate(insertData1);
stmt.executeUpdate(insertData2);
conn.close();
} catch (SQLException x) {
x.printStackTrace();
}
Слайд 7JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Параметризованные SQL-предложения
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
try
JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Параметризованные SQL-предложения
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
try

Connection conn = DriverManager.getConnection(
"jdbc:odbc:projects");
String insertData = "INSERT INTO roles (Sortorder, Name) " +
"VALUES(?, ?)";
PreparedStatement stmt = conn.prepareStatement(insertData);
stmt.setInt(1, 30);
stmt.setString (2, "QA Engineer");
stmt.executeUpdate();
conn.close();
} catch (SQLException x) {
x.printStackTrace();
}
Слайд 8JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Получение данных
JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Получение данных

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
try {
Connection conn = DriverManager.getConnection(
"jdbc:odbc:projects");
String selectData = "SELECT Name, Salary FROM positions";
Statement stmt = conn.createStatement(selectData);
ResultSet rs = stmt.executeQuery();
System.out.println("Name\tSalary");
System.out.println("-----------------------");
while (rs.next()) {
String name = rs.getString("Name");
int salary = rs.getInt("Salary");
System.out.println(name + '\t'
}
conn.close();
} catch (SQLException x) {
x.printStackTrace();
}
Слайд 9JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Исследование полученных
JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Исследование полученных

private static void printTable(Connection conn, String sql) {
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int colCount = rsmd.getColumnCount();
for (int i = 1; i <= colCount; ++i) {
System.out.print(rsmd.getColumnName(i) + '\t');
}
System.out.println(); System.out.println("--------------");
while(rs.next()) {
for (int i = 1; i <= colCount; ++i) {
System.out.print("" + rs.getObject(i) + '\t');
}
System.out.println();
}
} catch(SQLException x) {
System.out.println("Couldn't print table: " + x.getMessage());
}
}
Слайд 10JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Какую еще
JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Какую еще

ResultSetMetaData rsmd = rs.getMetaData();
int count = rsmd.getColumnCount();
String fieldName = rsmd.getColumnName(i);
int type = rsmd.getColumnType(i);
// Types.VARCHAR, Types.INTEGER,...
String typeName = rsmd.getColumnTypeName(i);
// Как его возвращает драйвер БД, например "counter".
String className = rsmd.getColumnClassName(i);
// С точки зрения языка Java, например, "java.math.BigDecimal".
boolean curr = rsmd.isCurrency(i);
int nullable = rsmd.isNullable(i);
// columnNullable, columnNoNulls, columnNullableUnknown
Можно также получать метаданные о таблице, самой базе данных,…
DatabaseMetaData md = conn.getMetaData();
int maxRowSize = md.getMaxRowSize();
ResultSet metaRs = md.getTables(catalog, schema, tabName, types);
Слайд 11JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Работа с
JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Работа с

// Увеличиваем все зарплаты на 10 процентов
private static void updateSalaries(Connection conn) {
try {
Statement stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE, // Можно перемещать
ResultSet.CONCUR_UPDATABLE); // Можно изменять данные
ResultSet rs = stmt.executeQuery("Select * From positions");
while (rs.next()) {
rs.updateInt("Salary", (int)(rs.getInt("Salary") * 1.1));
rs.updateRow();
}
} catch (SQLException x) {
x.printStackTrace();
}
}
// Конечно, того же эффекта можно было бы добиться,
// просто исполнив предложение
// UPDATE positions SET Salary = Salary * 1.1
Слайд 12JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Если курсор
JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Если курсор

то с ним можно выполнять следующие действия:
ResultSet rs = ...;
rs.absolute(1);
rs.beforeFirst();
rs.afterLast();
rs.first();
rs.last();
rs.next()
rs.previous();
rs.relative(-5);
Если курсор перемещаемый только вперед (TYPE_FORWARD_ONLY),
то с ним можно выполнять только next()
Слайд 13JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Если курсор
JDBC – программный пакет для работы с БД
Базы данных: учебный курс
Если курсор

то можно заменять, добавлять и удалять данные:
// Замена
rs.updateInt(column, newData);
... // другие изменения в текущей записи
rs.updateRow();
// Добавление
rs.updateString(column, newData);
... // другие добавления в запись
rs.insertRow();
// Удаление
rs.deleteRow();
Если SELECT-предложение сложное, то может быть, данные невозможно
будет изменить, даже несмотря на то, что курсор UPDATEABLE.
Talk for a minute
Литературная игра для младших школьников по произведениям Н.Н.Носова «Затейники и фантазёры»
L`italiano è facile
Коммуникации. Техника 3-х касаний
Муниципальное образовательное учреждение "Ковылкинская средняя общеобразовательная школа № 1"
Грант 2013г
Тема урока: «Бунташный век».
History & Mystery of the English language
Внутренняя среда организма. Кровеносная система
Современные средства поражений
ПЕРСПЕКТИВНАЯ НАЧАЛЬНАЯШКОЛА
lecture_1
Тукай начал изучать русский язык
История праздника Новый Год
Проект: видеоблог
Расчет теплоусвоения внутренней поверхности полов
ЭФФЕКТ КАЗИМИРА: ОТ НАНОТЕХНОЛОГИЙ ДО ФИЗИКИ ВСЕЛЕННОЙ
Цифровые права
Сетевой маркетинг
культура и достопримечательности Греции
Мектеп бітірушілердің психологиялық-физиологиялық жағдайын ескере отырып қобалжу деңгейін төмендету
Решение текстовых задач. Закрепление пройденного
Традиционная реклама
Saint Patricks day
КОМПЬЮТЕРНАЯ ДОЛИНА
Литературная игра по творчеству А.С. Пушкина
Презентация на тему Семейство Губоцветные
ФИЗИЧЕСКАЯ КУЛЬТУРА