Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Начинаем изучать MySQL
<<-[Весь Текст]
Страница: из 157
 <<-
 
соединиться, и передает ему данные, необходимые для осуществления соединения.
Смысл слова «driver» в JDBC зависит от контекста. При написании в нижнем 
регистре JDBC driver является собранием классов, в совокупности реализующих все 
интерфейсы JDBC и обеспечивающих приложение доступом хотя бы к одной базе 
данных. При написании Driver с заглавной буквы подразумевается класс, 
реализуемый в Java. sql. Driver. И наконец, JDBC предоставляет интерфейс 
DriverManager, с помощью которого можно вести учет всех различных реализаций 
Driver.
Часть URL, обозначающая протокол, ссылается на конкретный драйвер JDBC. В 
случае MySQL и mSQL протоколами являются ту sql и msql соответственно. 
Субпротокол сообщает данные соединения, специфические для реализации. Для 
соединения с MySQL и mSQL требуются имя узла и имя базы данных. Дополнительно 
может потребоваться номер порта, если ядро базы данных запущено не как root. 
Поэтому полный URL для mSQL выглядит как, например, jdbc:msql://athens.
imagi-nary.com: 1114/test. Он сообщает DriverManager о необходимости найти 
драйвер JDBC для mSQL и соединиться с базой данных test на athens.imaginary.com 
через порт 1114. Это делается путем единственного обращения к методу 
getConnection() интерфейса DriverManager. В примере 14-1 показано, как 
осуществить соединение с базой данных mSQL.
Пример 14-1. Отрывок кода из примеров, предоставляемых с драйвером JDBC для 
mSQL, показывающий, как осуществить соединение
import java.sql.*;
public class Connect { public static void main(String argv[]) {
Connection con = null;
try {
// Вот JDBC URL для этой базы данных
String url = "jdbc:msql://athens.imaginary.com:1114/db_test"; 
// 0 том, что делают классы Statement и ResultSet, ниже Statement stmt; 
ResultSet rs;
// передать это как свойство, т.е. 
// -Djdbc.drivers=com.imaginary.sql.msql.MsqlDriver 
// или загрузить, как сделано в этом примере 
Class.fоrName("com.imaginary, sql. msql. MsqlDriver"); 
// здесь осуществляется соединение 
con = DriverManager.getConnection(url, "borg", ""); 
} 
catch( SQLException e ) {
e.printStackTrace(); }
finally {
if( con != null ) {
try { con.close();
}
catch( Exception e ) { } 
}
} 
}
}
В этом примере соединение с базой данных осуществляется в строке 
con=DriverManager.getConnection(url, "borg", ""). В данном случае JDBC URL и 
имя класса, реализующего Driver, фактически введены в код приложения. В 
демонстрационной программе это допустимо, но всякое серьезное приложение должно 
загружать эти данные из файла свойств, получать через аргументы командной 
строки или из свойств системы. Реализация Driver будет автоматически загружена, 
если передать ее как системное свойство jdbc.drivers - иными словами, не нужно 
вызывать Class. ForName(). newlnstance(driver_name), если вы передаете имя 
драйвера как системное свойство jdbc.drivers. Второй и третий аргументы 
getConnection() передают ID пользователя и пароль, необходимые для установления 
соединения. Поскольку mSQL не использует пароли для авторизации пользователей, 
в примере используется пустая строка. Для MySQL же необходимо сообщить пароль.
Поддержка переносимости с помощью файлов свойств
Хотя наше внимание сосредоточено на двух конкретных базах данных, хорошей 
практикой программирования на Java является обеспечение полной переносимости 
приложений. Под переносимостью обычно подразумевается, что вы не пишете код, 
предназначенный для выполнения только на какой-то одной платформе. Однако для 
Java термин «переносимость» имеет более сильный смысл. Он означает 
независимость от аппаратных ресурсов и независимость от базы данных.
Мы сказали о том, что JDBC URL и имя Driver зависят от реализации, но не 
сказали, как избежать их включения в код. Поскольку и то, и другое представляет 
собой простые строки, их можно передать в качестве параметров командной строки 
или как параметры апплетов. Это работающее, но едва ли элегантное решение, 
поскольку оно требует, чтобы пользователь помнил длинные командные строки. 
Аналогичное решение - выдавать пользователю приглашение для ввода этих данных, 
которое опять-таки требует, чтобы пользователь вспоминал JDBC URL и имя класса 
Java при каждом запуске приложения.
Более изящное решение получается при использовании файла свойств. Файлы свойств 
поддерживаются классом Java. util. Resource-Bundle и его подклассами, позволяя 
приложению извлекать данные, относящиеся ко времени исполнения, из текстового 
файла. Для приложения, использующего JDBC, можно вставить в файл свойств URL и 
имя Driver, возложив на администратора приложения обязанность указать детали 
соединения. Пример 14-2 показывает файл свойств,
 
<<-[Весь Текст]
Страница: из 157
 <<-