Хорошо хорошо. Я знаю, что Java Database Connectivity (JDBC) не имеет большого (если вообще что-то) отношения к PHP, поэтому заранее прошу прощения, если вы настроены ожидать что-то связанное с PHP. Однако я приношу свои извинения тем, что выход из вашей зоны комфорта, как правило, полезен для вашего роста. Самое интересное в том, что это очень полезно, так как вы не можете предсказать. Итак, с учетом сказанного, я приступаю к исследованию драйвера JDBC Microsoft для SQL Server в надежде, что я узнаю что-то новое (возможно, даже многие вещи). Я не планирую прекращать писать о PHPТак что считайте эту поездку прогулкой по боковой улице. В дополнение к моему обычному контенту, связанному с PHP, я буду стремиться делать посты, связанные с Java / JDBC, пару раз в месяц, так как узнаю новые и интересные вещи. Но когда вы начинаете идти по боковым улочкам, вы никогда не знаете, где окажетесь …
Мой интерес к драйверу JDBC вызвали две публикации в блоге: улучшение работы Java-разработчиков с Windows Azure и JDBC 3.0 для SQL Server и SQL Azure Available . В последнем посте рассказывается о подключении к SQL Azure с использованием JDBC, тогда как в первом посте рассказывается о Windows Azure Starter Kit для Java . Я написал несколько постов о PHP и платформе Azure , поэтому мне было любопытно запустить Java в облаке Microsoft. Но сначала мне нужно было разобраться с основами установки и выполнения простых запросов, о чем я расскажу в этом посте.
Установка Java Development Kit (JDK)
Документация по JDBC для SQL Server указывает, что драйвер JDBC 3.0 для SQL Server соответствует спецификации JDBC 4.0 и предназначен для работы со всеми основными виртуальными машинами Java, эквивалентными Sun, но протестирован на Sun JRE 5.0 или более поздней версии. Следя за X.0, я установил Java Development Kit (JDK) 6 (который вам нужен для разработки приложений Java) отсюда: http://www.oracle.com/technetwork/java/javase/downloads/index .html . (Обязательно загрузите JDK , который включает JRE.)
После установки JDK необходимо сделать его доступным для вашей системы, добавив путь к папке bin в переменную среды Path . Если вы еще этого не сделали, вот что вы делаете:
1. Нажмите Пуск -> Панель управления -> Система -> Расширенные настройки .
2. В окне « Свойства системы» выберите « Переменные среды» :
3. В разделе « Системные переменные » выберите переменную Path и нажмите « Изменить» .
4. В конце существующего значения добавьте точку с запятой , а затем путь к каталогу bin JDK и нажмите OK:
Теперь вы должны быть готовы к компиляции и запуску программ Java.
Установка драйвера JDBC для SQL Server
Существует несколько версий драйвера JDBC для SQL Server, доступных для загрузки на сайте загрузки Microsoft (в основном потому, что каждый драйвер совместим с различными версиями Java). Если вы в конечном итоге заинтересованы в доступе к SQL Azure из Java, обязательно загрузите этот файл: Драйвер JDBC для SQL Server 3.0 для SQL Server и SQL Azure . Обратите внимание, что загрузка является самораспаковывающимся zip-файлом. Я рекомендую заранее создать такой каталог: C: \ Program Files \ JDBC-драйвер Microsoft SQL Server. Затем вы можете просто распаковать файл ( sqljdbc_3.0 ) в этот каталог.
Далее вам нужно предоставить доступ к классам драйвера JDBC из Java. Есть несколько способов сделать это. Я обнаружил, что самым простым способом было создать новую переменную среды с именем classpath и установить ее значение следующим образом:
Для этого выполните шаги 1 и 2 сверху, а затем нажмите «Создать» в разделе « Пользовательские переменные »:
Затем введите classpath в качестве имени переменной и задайте для нее значение .; C: \ Program Files \ Драйвер JDBC Microsoft SQL Server \ sqljdbc_3.0 \ enu \ sqljdbc4.jar (или там, где находится файл sqljdbc4.jar ) и нажмите ОК.
Нажмите кнопку « ОК» в диалоговом окне « Переменные среды» и « Свойства системы» .
Теперь мы готовы написать простой код.
Подключение и получение данных
Наконец, мы можем написать некоторый код Java, который будет подключаться к базе данных и получать некоторые данные. Я не буду вдаваться в учебник по Java здесь, но скажу, что в прошлом я написал очень мало Java-кода и смог легко понять, как написать код ниже. Конечно, я нашел эти разделы полезными в документах: Работа с подключением и справка по API драйвера JDBC .
Несколько вещей меня удивили, вероятно, потому, что они отличаются от PHP:
- Несмотря на то, что классы импортированы, мне все равно пришлось использовать Class.forName для динамической загрузки класса SQLServerDriver .
- Элементы строки подключения отличаются от драйверов SQL Server для PHP («пользователь» против «UID», «пароль» против «PWD» и «база данных» против «база данных»).
- Индекс для возвращаемых столбцов начинается с 1, а не с 0.
И, очевидно, вы должны надеть шапку ООП при написании Java…
// Import the SQL Server JDBC Driver classes
import java.sql.*;
class Example
{
public static void main(String args[])
{
try
{
// Load the SQLServerDriver class, build the
// connection string, and get a connection
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://ServerName\\sqlexpress;" +
"database=DBName;" +
"user=UserName;" +
"password=Password";
Connection con = DriverManager.getConnection(connectionUrl);
System.out.println("Connected.");
// Create and execute an SQL statement that returns some data.
String SQL = "SELECT CustomerID, ContactName FROM Customers";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(SQL);
// Iterate through the data in the result set and display it.
while (rs.next())
{
System.out.println(rs.getString(1) + " " + rs.getString(2));
}
}
catch(Exception e)
{
System.out.println(e.getMessage());
System.exit(0);
}
}
}
Для того, чтобы скомпилировать код выше, я первый файл сохранен в C: \ JavaApps в Example.java (имена классов должны совпадать с именами файлов). Затем я открыл командную строку, изменил каталоги на C: \ JavaApps и запустил следующее:
C: \ JavaApps> javac Example.java
В результате был создан файл с именем Example.class (в том же каталоге), который я затем мог запустить с помощью этой команды:
C: \ JavaApps> Java пример
Если вы запустите пример для базы данных Northwind , вы должны увидеть хороший список идентификаторов и имен клиентов.
Это оно! Очевидно, это только начало. Я продолжу исследовать эту идею, чтобы в конечном итоге запустить ее на платформе Azure. если у вас есть конкретные вещи, которые вы хотите, чтобы я расследовал, пожалуйста, прокомментируйте ниже.
Спасибо.
-Брайан