Перейти к содержанию
СофтФорум - всё о компьютерах и не только

JBuilder и дрова к базе данных


Рекомендуемые сообщения

Подскажите, может кто сталкивался.

Программа на java для работы с базой данных. Пишется в среде JBuilderX. (т.к. нет JDK).

В связи с этим возникла проблема. Есть драйвер для базы данных (postgresql) - расширение jar. Но куда его ставить? А главное как? Где прописать к нему пути?

Билдер у меня как-то плохо крякнутый и хелпа нет. Совсем.

Работаю я дома под XP, а в сети нашла инструкции только для UNIX-овых ОСей.

З.Ы.: не надо пожалуйста писать ответы типа "винда отстой, линукс форева".

Ссылка на комментарий
Поделиться на другие сайты

Для того, чтобы работать со сторонней библиотекой (а драйвер БД является именно сторонней библиотекой) - надо его включить в проект. Для этого:

  1. Создай в папке проекта новую папку, где будет лежать драйвер (я обычно называю ее extlib и кидаю туда все сторонние библиотеки для проекта). Скопируй в нее jar с драйвером.
  2. Открой свой проект в JBuilder'e, выбери в меню Project -> Project Properties...
  3. В дереве слева д.б. выбран пункт Paths (он выбран по умолчанию), в панели справа выбери закладку Required Libraries. В ней перечислены подключаемые библиотеки.
  4. Для того, чтобы добавить новую библиотеку нажимаешь Add.
  5. В открывшемся окне можно выбрать дополнительные библиотеки. Для того, чтобы добавить в этот список свою - нажимаешь New...
  6. В открывшемся окне даешь имя библиотеке (любое, понятное для тебя), Location устанавливаешь в Project. Нажимаешь Add..., выбираешь файл библиотеки оттуда, куда ты его скопировала. Жмешь Ок в окне создания библиотеки.
  7. В окне подключения библиотеки в ветке Project появилась твоя. Выбирай ее, и жми Ок.
  8. Жми Ок в окне свойств проекта.

Все!

В пункте 6 ты можешь указывать различный Location. Это признак, где будет храниться библиотека. Project обозначает, что она хранится в проекте. Т.е. если ты создашь новый проект - тебе надо будет в него снова cкопировать эту либу, и снова ее подключить по этой схеме. Но зато, если ты перенесешь проект на другую машину с JBuilder'ом - ее не надо будет переподключать.

Если ты выберешь другой Location, например JBuilder, и закинешь драйвер не в папку проекта, а куда-нибудь в папку JBuilder'a - то ты сможешь подключать ее к другим проектам, выбирая из списка имеющихся библиотек (п.п. 4-6 будут не нужны), но при переносе проекта на другую машину возможно потребуется переподключение.

Ссылка на комментарий
Поделиться на другие сайты

зато теперь вот такой вопрос:

1. когда пишу Class.forName(driver), то в переменной driver должна быть строка, совпадающая с именем драйвера, только без расширения jar?

2. и как будет выглядеть URL? откуда его можно узнать?

"я не тормоз, я просто... подождите!" :)

Ссылка на комментарий
Поделиться на другие сайты

1. когда пишу Class.forName(driver), то в переменной driver должна быть строка, совпадающая с именем драйвера, только без расширения jar?

2. и как будет выглядеть URL? откуда его можно узнать?

Нет. Ты не совсем верно поняла. Jar-овский архив - это просто средство, позволяющее сгруппировать те или иные классы и пакеты. И имя этого архива важно только тогда, когда ты его подключаешь. После того, как jar подключен к проекту - его имя уже не важно. Важными становятся имена пакетов и классов, которые подключились. А подключается их много, т.к. кроме класса, непосредственно реализующего jdbc-драйвер есть еще много вспомогательных классов, так или иначе учавствующих в процессе общения с БД. Что же представляет из себя сам драйвер работы с БД? Это класс, реализующий интерфейс java.sql.Driver. Но это внутренняя кухня, и тебя она волновать не должна, единственное для чего я об этом упоминаю - чтобы ты поняла, что сам jar-архив не является драйвером, а лишь содержит набор классов.

Теперь давай определимся для чего заваривается вся каша. Перед использованием драйвера надо создать объект этого класса. Для этого и используется фраза Class.forName(driver).newInstance(), где driver - имя класса, объект которого мы создаем. Class.forName(driver) обращается к классу, имя которого указано в качестве параметра. Т.е., например Class.forName("java.util.date") даст в результате класс, проассоциированный с java.util.date. Соответственно, для создания объекта-драйвера тебе надо указать имя класса драйвера.

Для примера возьмем драйвер для mysql (просто он у меня есть под рукой). В качестве класса, реализующего интерфейс java.sql.Driver выступает класс com.mysql.jdbc.Driver (где com.mysql.jdbc - полное имя пакета, в котором расположен этот класс). И если я залезу в jar, то пройдя по соответствующим папкам я действительно найду этот класс, и если на него посмотреть изнутри - он действительно реализует интерфейс java.sql.Driver. Соответственно обращение к нему звучит как Class.forName("com.mysql.jdbc.Driver").

Имя такого класса для своего jar-a ты можешь найти в документации, она обычно валяется где-то рядом с тем местом, откуда его можно скачать. Или можешь залезть в jar и посмотреть там - я думаю, структура классов будет отличаться не сильно.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...