Java_Webinar04_asm.ppt
- Количество слайдов: 17
2011 Программирование на Java Автор: Антон Смалюк Образовательный центр Парка высоких технологий
Рассматриваемые вопросы Понятие jdbc, драйвер Подключение к СУБД Выполнение запросов Прекомпилированные запросы Образовательный центр Парка высоких технологий 2
Понятие jdbc Java имеет собственный механизм для работы с базами данных. Он называется jdbc. Он не является СУБД, это механизм для работы с другими СУБД, такими, например как Oracle, My. SQL и т. п. Для работы с базой данных требуется два элемента. Первый — библиотека выполнения sql запросов. Она входит в стандартную библиотеку java, и используется для любой СУБД. Кроме того необходимо иметь драйвер, который предназначен для конкретной субд. Драйвер не входит в комплект, и его следует получить у разработчика БД. Образовательный центр Парка высоких технологий 3
Понятие jdbc Существует несколько видов драйверов. Наиболее предпочтительными являются драйвера, которые целиком написаны на java. Обычно такой драйвер представляет из себя файл jar Также есть драйвера требующие наличия библиотек написаных на языках C C++. Такие драйвера как правило предназначены не только для определенной СУБД, но и определенной ОС И в среде Windows можно использовать драйвера, использующие стандартный механизм odbc Образовательный центр Парка высоких технологий 4
Понятие jdbc В случае mysql имеется драйвер, написанный на java, который можно скачать с сайта mysql по адресу: http: //www. mysql. com/products/connector/ По этому адресу скачивается архив, внутри которого имеется jar файл интересующий нас. Все остальное в архиве — вспомогательное и не является обязательным для работы. Образовательный центр Парка высоких технологий 5
Подключение драйвера Чтобы проект мог работать с базой данных, необходимо подключить к нему драйвер. Для этого надо на проекте нажать правую кнопку, в меню выбрать пункт properties В открывшемся окне выбрать пункт Java buid path Затем выбрать закладку Libraries После этого нажать кнопку Add external jars. . . Откроется окно выбора файлов, надо найти и выбрать jar файл c драйвером После этого драйвер должен появиться в списке Образовательный центр Парка высоких технологий 6
Подключение драйвера Образовательный центр Парка высоких технологий 7
Подключение к СУБД Основные этапы работы с СУБД: Загрузка драйвера. Создание URL соединения Установка соединения Создание объекта запроса Выполнение запроса Получение результатов Закрытие соединения. Образовательный центр Парка высоких технологий 8
Загрузка драйвера Для использования драйвера в программе его следует загрузить. При этом не надо создавать объект класса, данного драйвера. Для этого следует воспользоваться методом Class. for. Name. Как осуществляется подобная загрузка: try { Class. for. Name("com. mysql. jdbc. Driver"); } catch (Class. Not. Found. Exception cnfe) { System. out. println("Error loading driver: " +cnfe); } Метод for. Name получает на вход строку с именем класса нужного драйвера. Если драйвер не может быть загружен, создается исключение Class. Not. Found. Exception. Образовательный центр Парка высоких технологий 9
Подключение к СУБД После того, как драйвер загружен, следует создать URL, который будет содержать информацию о том к где находится нужная нам СУБД, и как к ней подключаться. Мы рассмотрим вид URL для My. SQL. Общий вид его таков: "jdbc: mysql: //адрес_сервера: порт/имя_базы" Для My. SQL чаще всего используется порт 3306 При подключении к My. SQL, расположенном на том же компьютере, URL будет выглядеть следующим образом: String db. URL = "jdbc: mysql: //localhost: 3306/List. Expenses"; Образовательный центр Парка высоких технологий 10
Подключение к субд Для соединения создается объект класса Connection, и непосредственно само соединение осуществляется с помощью статического метода get. Connection, Класса Driver. Manager. my. Connection = Driver. Manager. get. Connection(db. URL, username, password); Метод получает на вход три параметра — сформулированный URL, имя пользователя и пароль. Следует помнить, что большинство операций с базой могут создать исключение SQLException Поэтому как правило все операции работы с базой помещаются в блок try catch. Образовательный центр Парка высоких технологий 11
Подключение к СУБД Пример подключения к субд: String username="root"; String password=""; Connection my. Connection; try { my. Connection = Driver. Manager. get. Connection(db. URL, username, passwor d); //Здесь могут располагаться остальные операции с базой } catch (SQLException e) { e. print. Stack. Trace(); } Образовательный центр Парка высоких технологий 12
Выполнение запроса Для того, чтобы выполнить запрос, следует сначала создать его объект. Для этого используется метод create. Statement класса Connection. Statement statement = my. Connection. create. Statement(); Для выполнения запроса, сначала создается строка с SQL запросом, например: String query="SELECT paydate, value, name FROM expenses, receivers WHERE receiver=receivers. num"; А затем, вызывается метод execute. Query, с данным запросом в качестве параметра: statement. execute. Query(query); Образовательный центр Парка высоких технологий 13
Выполнение запроса Метод execute. Query позволяет выполнять запросы типа SELECT, которые извлекают данные из базы. Для запросов, изменяющих данные в базе, таких как INSERT, UPDATE, DELETE используется метод execute. Update. Метод execute. Query возвращает результат — объект класса Result. Set result = statement. execute. Query(query); Все эти операции должны находиться внутри try catch. Образовательный центр Парка высоких технологий 14
Выполнение запроса После того, как результат получен, можно извлекать из него данные. Чтобы получить очередную запись из результата используется метод next(). Для получение данных в строковом виде можно воспользоваться методом get. String(номер_поля). Нумерация полей здесь начинается не с нуля а с единицы while(result. next()) { System. out. println(result. get. String(1)+" " +result. get. String(2)+ " " + result. get. String(3)); } Образовательный центр Парка высоких технологий 15
Выполнение запросов Кроме next возможно использовать метод previous если надо не перейти к следующей записи а вернуться на одну. Также есть метод relative, позволяющий переместиться на несколько шагов из текущей позиции, например result. relative(-2). Метод absolute также позволяет переместиться на произвольное количество записей относительно начала. После того, как работа с базой завершена, желательно закрыть соединение. Осуществляется это методом close(). my. Connection. close(); Образовательный центр Парка высоких технологий 16
Прекомпилированные запросы Сначала создается строка с запросом, на месте изменяющихся значений стоит знак вопроса, например: String template = "SELECT * from expenses where value > ? "; Затем создается объект класса Prepared. Statement p. Statement = my. Connection. prepare. Statement(template); Следующим шагом шаблону следует задать нужное значение. p. Statement. set. Float(1, 10000. 0 F); Затем, как и с обычным запросом выполняется метод execute. Query. Образовательный центр Парка высоких технологий 17
Java_Webinar04_asm.ppt