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

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 и посмотреть там - я думаю, структура классов будет отличаться не сильно.

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

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

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