Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как установить драйвер JDBC для MySQL, установка драйвера 
V
    Опции темы
bibmaster
Дата 31.5.2007, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 21.2.2007

Репутация: нет
Всего: нет



Здравствуте, скачал mysql драйвер с официального сайта mysql, но просто закинув jar архив в jre/lib/ext/ не дало никаких результатов. В программе соединения пишет что драйвер не найден....Возможно проблема с установкой class path, но как ее грамотно прописать не знаю....пробовол из cmd  пишет что нет main либо просто выдает справку...Покажите пожалуйста на примере. Архив находится в C:\Java\jre\lib\ext  mysql.jar  там папки com\mysql\Driver.class ...помогите как это ЧУДО настроить чтоб заработало в конце концов, а то замучился уже
PM MAIL   Вверх
batigoal
Дата 31.5.2007, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



bibmaster, загляни для начала сюда: http://forum.vingrad.ru/base/Kak-nachat-ra...s-JAVA-126.html

А у тебя будет строка запуска вроде такой:

Код

D:\project\classes>java -classpath .;D:\jdbc_drivers\mysql.jar mypackage.MyClass

(при условии что в PATH все нормально прописано)


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Shaggie
Дата 31.5.2007, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: 4
Всего: 72



batigoal, а нет ли возможности положить архив с драйвером в папку с классами моей программы и прописать в том классе, где находится main(), строку import драйвер; ?


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
batigoal
Дата 31.5.2007, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Цитата(Shaggie @  31.5.2007,  14:27 Найти цитируемый пост)
а нет ли возможности положить архив с драйвером в папку с классами моей программы и прописать в том классе, где находится main(), строку import драйвер; ? 

Из командной строки не покатит. Джары указываются целиком, вместе с именем файла.

А импорт тебе так и так прописывать придется, это не зависит от classpath.

Добавлено через 48 секунд
Ну разве что в этом случае сможешь относительный путь указать:
Код

D:\project\classes>java -classpath .;mysql.jar mypackage.MyClass



--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Shaggie
Дата 31.5.2007, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: 4
Всего: 72



Грустно. Теперь, похоже, придётся всегда программу через батник запускать...


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
chief39
Дата 31.5.2007, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Цитата(Shaggie @  31.5.2007,  13:46 Найти цитируемый пост)
Грустно. Теперь, похоже, придётся всегда программу через батник запускать...

Дык что тут грустного? smile Это - правильно smile
Неужели юзер будет в командной строке класспасы вписывать? smile


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
batigoal
Дата 31.5.2007, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Shaggie, можешь упаковать свою прогу в jar, и прописать внутри зависимости. Тогда можно будет запускать дабл-кликом.

Это сообщение отредактировал(а) batigoal - 31.5.2007, 16:22


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Shaggie
Дата 1.6.2007, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: 4
Всего: 72



А зависимости в манифесте указывать?


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
batigoal
Дата 1.6.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Цитата(Shaggie @  1.6.2007,  10:19 Найти цитируемый пост)
А зависимости в манифесте указывать? 

Да, в секции Class-Path.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
v2v
Дата 10.6.2007, 03:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



Так и найдя тут достойной рабочей темы с подробным описанием как подключаться в MySQL базе данных с помощью драйвера JDBC, решил написать небольшой мануал на эту тему.
Я сам только что разобрался с этим, так что если где то ошибусь, подправьте.

Для начала рассмотрим список того что нам надо:
1. MySQL сервер, причём он должен быть запущен.
2. JDBC connector для MySQL, можно скачать с оффициального сайта MySQL.
3. Собственно java sdk.

Итак, Вы скачали всё необходимое, приступаем к работе.
Я не буду рассматривать процесс установки и настройки MySQL сервера, но для дальнейшей работы нам необходимо , что - бы:
 - MySQL сервер был запущен;
 - сущестовал пользователь root без пароля ( настройки по умолчанию);
 - существовала база данных test.

Первым делом разархивируйте mysql драйвер например в каталог: "c:\mysql-JDBC-3.0.17\". (Во время написания статьи была именно эта (3.0.17) версия jdbc драйвера, у Вас может быть более новая.)
В корне архива лежит файл: "c:\mysql-JDBC-3.0.17\mysql-connector-java-3.0.17-ga-bin.jar" , дальнейшая работа будет производиться именно с ним.

Создадим тестовый пример:

Код

/* файл Connect.java */ 
import java.io.*;
import java.sql.*;

   public class Connect
   {
       public static void main (String[] args)
       {
           Connection conn = null;

           try
           {
               String userName = "root";
               String password = "";
               String url = "jdbc:mysql://localhost/test";
               Class.forName ("com.mysql.jdbc.Driver").newInstance ();
               conn = DriverManager.getConnection (url, userName, password);
               System.out.println ("Database connection established");
           }
           catch (Exception e)
           {
               System.err.println ("Cannot connect to database server");
               e.printStackTrace();
           }
           finally
           {
               if (conn != null)
               {
                   try
                   {
                       conn.close ();
                       System.out.println ("Database connection terminated");
                   }
                   catch (Exception e) { /* ignore close errors */ }
               }
           }
       }
   }
/*конец файла*/



Немного объяснений.

Код

               String userName = "root";
               String password = "";


имя пользователя в СУБД MySQL и его пароль. Этого пользователя создавать не надо, он существует в MySQL при установке.
Код

               String url = "jdbc:mysql://localhost/test";

Строка, подключения к бд, тут указывается что у нас локальный сервер MySQL (localhost) и база данных называется test.
            
Код

Class.forName ("com.mysql.jdbc.Driver").newInstance ();

Инициализация драйвера jdbc для  работы с MySQL.
В функию соеденения с бд getConnection() мы передаём все эти 3 параметра, и подключаемся к БД.
Замечание. Можно было не использовать отдельно имя пользователя и пароль, а создать строку подключение к БД следующего характера:
            
Код

String url = "jdbc:mysql://localhost/[DB_Name]?user=[UserName]&password=[Password]";

Тогда функция соеденения с БД getConnection получала только один параметр, строку подключения.
                
Код

conn.close ();

После завершения работы отключаемся от БД.

Компилируем и запускаем.
В папке с файлом Connect.java создаём ещё один файл Connect.bat в котором записываем только две строки: 
Код

C:\j2sdk1.4.2_14\bin\javac.exe Connect.java
java -classpath .;"c:\j2sdk1.4.2_14\mysql-JDBC-3.0.17\mysql-connector-java-3.0.17-ga-bin.jar" Connect

У вас эти строки могут отличаться, внимательно следите за номерами версий в названиях.
Как видим мы тут подключаем класс с нашим jdbc mysql драйвером.
Сохраняем. Запускаем.
Быстро мигнувшее чёрное окно - это и есть выполнившаяся программа. Для того что бы что то увидеть , для начала запустите сессию cmd  и лишь оттуда Connect.bat
Не всегда является удобным запускать java программы через bat ( с параметром classpath ).
Для того что бы избавиться от него, необходимо скопировать файл mysql-connector-java-3.0.17-ga-bin.jar в папку для расширений к виртуальной машине, у меня это папка: 
"C:\Program Files\Java\j2re1.4.2_14\lib\ext"
тогда можно будет запускать нашу програмку:
Код

java Connect

Замечание. Вот на этом этапе и происходит больше всего ошибок. Дело в том что у вас на компьютере может быть несколько папок "..\j2reХ.Х.Х_ХХ\lib\ext" какая именно используется необходимо проверить экспериментальным путём. 


Дерзайте.
С уважением, v2v aka Vova.
            


Это сообщение отредактировал(а) v2v - 10.6.2007, 09:44


--------------------
PM   Вверх
batigoal
Дата 12.6.2007, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



v2v, не стоит валить в кучу собственно JDBC и параметры запуска. А класть библиотеки в общедоступное хранилище я вообще считаю очень нехорошим делом.

Но это так, пожелания. А в целом - "+" за старание и желание помочь другим.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
v2v
Дата 12.6.2007, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



2batigoal, 
за плюс спасибо.
а пример я попытался рассмотреть самый примитивный... что бы запустилося.. ясное дело что даже я так бы не писал что либо серьёзное  smile
поповоду складывагте библиотек в общедоступное хранилище, так там я рассмотрел 2 варианта;).


Это сообщение отредактировал(а) v2v - 12.6.2007, 22:59


--------------------
PM   Вверх
Shaggie
Дата 20.6.2007, 09:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: 4
Всего: 72



Оказалось, что во время тестирования проекта удобно запускать через ant. В теге java указываем параметр classpathref="<директория с драйвером>".

Пример build.xml, драйвер для БД лежит в каталоге /lib
Код

<project name="project" default="run">

    <property name="sourcedir" value="${basedir}/src"/>
    <property name="targetdir" value="${basedir}/bin"/>
    <property name="librarydir" value="${basedir}/lib"/>

    <path id="libraries">
        <fileset dir="${librarydir}">
            <include name="*.jar"/>
        </fileset>
    </path>

    <target name="clean">
        <delete dir="${targetdir}"/>
        <mkdir dir="${targetdir}"/>
    </target>

    <target name="copy-resources">
        <copy todir="${targetdir}">
            <fileset dir="${sourcedir}">
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>

    <target name="compile">
        <javac srcdir="${sourcedir}" destdir="${targetdir}" classpathref="libraries"/>
    </target>

    <target name="run" depends="clean, copy-resources, compile">
        <java fork="true" classname="main" classpathref="libraries">
            <classpath path="${targetdir}"/>
            <arg value="${action}"/>
        </java>
    </target>
</project>



--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
serghd
Дата 29.10.2009, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 5.10.2009

Репутация: нет
Всего: нет



От себя добавлю (пришлось уделить на это порядок времени) как это просто делать используя netbeans: правая кнопка на проекте -> properties -> libraries -> вкладка Compile -> Add Library -> MySQL JDBC Driver. Всё, можно работать с mysql.
Вобщем-то, как нетрудно догадаться, таким образом в проект добавляется остальное множество сторонних библиотек.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2251 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.