Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Java.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
791.55 Кб
Скачать

Технологии работы с базой данных из Java. Особенности работы с соединениями с базой данных из Web-приложения. Пример.

Архитектура – Драйвер -> JDBC API <-клиетское приложение

Типы

Мост

Вызов native – библиотек

Pure java – универсальный протокол

Pure java – проприетарный протокол – в данный момент основной(не зависит от ос и платформы, не требуют доп библиотек)

/* ======== Подключение к MS SQL Server ===== */

// Загрузка драйвера

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

// Соединение с базой данных

Connection connection = DriverManager.getConnection(

"jdbc:sqlserver://localhost:1433;databaseName=o01;“, "sa", "123");

/* ======== Подключение к Oracle ============ */

// Загрузка драйвера

Class.forName("oracle.jdbc.OracleDriver");

// Соединение с базой данных

Connection connection = DriverManager.getConnection(

"jdbc:oracle:thin:@localhost:1521:orcl", "o01", "o01");

// Регистрация драйвера, создание источника данных и шаблона

Class.forName("oracle.jdbc.OracleDriver");

DataSource dataSource = new DriverManagerDataSource("jdbc:oracle:thin:@localhost:1521:orcl", "jdbctest", "jdbctest");

JdbcTemplate template = new JdbcTemplate(dataSource);

// Пример простого скалярного запроса

System.out.printf("Persons: %d\n", template.queryForInt("select count(*) from person"));

// Пример выборки данных в виде списка ассоциативных массивов (имя колонки - значение)

List<Map<String, Object>> rows = template.queryForList("select * from person");

for (Map<String, Object> row : rows) {

for (Map.Entry<String, Object> entry : row.entrySet()) {

System.out.printf("%s: %s\n", entry.getKey(), entry.getValue());

}

System.out.println();

}

// Пример выборки списка объектов

List<Person> persons = template.query("select * from person", new PersonMapper());

for (Person person : persons) {

System.out.printf("Id: %d, Name: %s\n", person.getId(), person.getName());

}

public class QuerySample {

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

// Загрузка драйвера

Class.forName("oracle.jdbc.OracleDriver");

// Соединение с базой данных

Connection connection = DriverManager.getConnection(

"jdbc:oracle:thin:@localhost:1521:orcl", // localhost - сервер СУБД, orcl - SID базы оракла

"o01", "o01"); // пользователь, пароль

// Объявление переменных, чтобы они были доступны в блоке finally.

ResultSet rs = null;

PreparedStatement stmt = null;

try {

// Создание Statement

stmt = connection.prepareStatement("select ID, NAME from PERSON where NAME like ?");

stmt.setString(1, "%m%");

// Выполнение запроса

rs = stmt.executeQuery();

// Перебор результата выполнения запроса

while (rs.next()) {

// Пример выбора параметра по номеру или по имени

System.out.println("ID: " +

rs.getLong(1) + "; NAME=" +

rs.getString("NAME"));

}

} finally {

// закрытие использованных ресурсов БД

if (rs != null) {

rs.close();

}

if (stmt != null) {

stmt.close();

}

connection.close();

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]