Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
193
Добавлен:
17.04.2018
Размер:
1.39 Mб
Скачать

ИП. БД. Распространенность моделей

МИЭТ, 2017

Распределение результатов (*1000) в Google по запросу: имя базы + "big data"

10000

9000

8000

7000

6000

5000

4000

3000

2000

1000

0

Oracle

NoSQL

 

Riak

MemcacheDB

HBase

Hypertable

Accumulo

MongoDB

 

OrientDB

MySQL

Postgres

Redis

Amazon DynamoDB BerkeleyDB

Cassandra

SimpleDB

CouchDB

Neo4j

AllegroGrap

Распределение результатов (*1000) в Yandex по запросу: имя базы + "big data"

60

50

40

30

20

10

0

 

Oracle

NoSQL

 

Riak

Memcache

HBase

Hypertable

Accumulo

MongoDB

 

OrientDB

MySQL

Postgres (sql)

Redis

Amazon Dynamo BerkeleyDB

Cassandra

SimpleDB

CouchDB

Neo4j

AllegroGrap

ИП. БД. Подключение БД в приложении

МИЭТ, 2017

Некоторые БД (например, Riak) обеспечивают HTTP интерфейс для работы, что позволяет работать с такими БД как из приложения на сервере, так и

напрямую c веб-страницы загруженой в броузер пользователя с помощью JavaScript и Ajax

Но все обеспечивают работу с серверными приложениями с помощью явно или неявно устанавливаемых драйверов.

Неявная установка это подключение драйвера в среде исполнения приложения.

PHP, файл php.ini, запись - extension=php_mysqli.dll

Явная установка это привязка драйвера к приложению через импорт. Java, файл mysql-connector-java-5.1.24-bin.jar, запись в коде приложения -

Connection conn = DriverManager.getConnection("jdbc:mysql://url:port/db", ...)

ИП. БД. Работа с БД на примере MySQL в PHP

МИЭТ, 2017

//открываем соединение

$link = mysqli_connect('хост','пользователь','пароль','база'); //проверка соединения

if(mysqli_connect_errno()) { //если ошибка

еcho 'Ошибка соединения: '.mysqli_connect_error(); } else {

//если успешно

$res = mysqli_query($link,"SELECT * FROM `таблица`"); if($res) {

//если запрос успешный

while($row = mysqli_fetch_assoc($res)) { //выводим данные

print_r($row);

}

//очищаем память mysqli_free_result($res);

}

//закрываем соединение mysqli_close($link);

}

ИП. БД. Работа с БД на примере MySQL в Java

МИЭТ, 2017

Скачиваем и подключаем в проект библиотеку mysql-connector-java-5.1.24-bin.jar

package javadb;

import java.sql.*;

import java.util.Properties;

public class JavaDB {

public static void main(String[] args) throws SQLException {

Properties props = new Properties(); //готовим логин-пароль props.setProperty("user", "root"); props.setProperty("password", "");

//Открываем соединение

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", props); //Создаем объект, реализующий интерфейс Statement

Statement stmt = conn.createStatement();

//Выполняем запрос и получаем результат в объект типа ResultSet ResultSet rs = stmt.executeQuery("select * from test");

try {

while (rs.next()) {

System.out.printf("%s | %s", rs.getString(1), rs.getString(2));

}

} finally { rs.close(); stmt.close();

}

}

}

ИП. БД. Работа с БД на примере MySQL в Java

МИЭТ, 2017

ИП. БД. Работа с БД в Java. JDBC

МИЭТ, 2017

Java приложение

Клиентское приложение

JDBC драйвер

Сервер СУБД

СУБД

Цель JDBC — унифицировать работу с СУБД для Java приложений

ИП. БД. Работа с БД в Java. Типы драйверов JDBC

МИЭТ, 2017

Тип 1. Реализация доступа к другому какому либо DB API (например, ODBC). Драйвер как правило реализован в виде «нативного» кода. Например: JDBC-ODBC bridge.

Тип 2. Драйвер реализован частично на Java. Пример: Oracle OCI драйвер

Тип 3. Драйвер на «чистой» («pure») Java, реализующий интерфейс к промежуточному серверу по общему протоколу.

Тип 4. Драйвер на «чистой» Java, реализующий конкретный протокол СУБД.

ИП. БД. Работа с БД в Java. Подключение

МИЭТ, 2017

Два способа подключения:

Класс DriverManager

Класс Datasource

Properties props = new Properties(); props.setProperty(«user», «roort»); props.setProperty(«password», «123»);

Connection conn = DriverManager.getConnection(«jdbc:mysql://localhost:3306/mydb», props);

Connection conn = DriverManager.getConnection(«jdbc:derby:db/mydb;create=true», props);

ИП. БД. Работа с БД в Java. URL соединения

МИЭТ, 2017

URL соединения указывает драйверу куда и как подключаться. Синтаксис зависит от драйвера.

Java DB (Derby): dbc:derby:[subsubprotocol:][databaseName][;attribute=value]*

Mysql: jdbc:mysql://[host][,failoverhost...][:port]/[database][?propertyName1] [=propertyValue1][&propertyName2][=propertyValue2]...

ИП. БД. Работа с БД в Java. Обработка ошибок

МИЭТ, 2017

Исключение SQLException:

getMessage() - возвращает сообщение об ошибке

getSQLState() - возвращает код и обозначение ошибки по ISO/ANSI

getErrorCode() - возвращает код ошибки

getNextException() - возвращает следующее исключение в цепочке исключений

try {

//код

}catch(SQLException se) { System.out.println(se.getSQLState());

}catch(Exception e) { System.out.println(e.getMessage());

}

Соседние файлы в папке Интернет технологии