Java: встроенная база данных - PullRequest
3 голосов
/ 26 мая 2010

Я хочу создать приложение desctop со встроенной базой данных. База данных JavaDB (Derby). Я подключил jar-файл derby.jar к своему проекту. Проблема в том, что я не понимаю, как зарегистрировать драйвер для использования этой базы данных. Говорят, что я должен использовать Class.forName ( "org.apache.derby.jdbc.EmbeddedDriver") Но что, если это была другая база данных, а ее драйвер не был в стандартном пакете Java? Как видите, я запутался с этим. Я хочу знать, как использовать подключенный файл derby.jar, как работать с его драйвером jdbc и как создавать таблицы в указанном каталоге.

Пожалуйста, дайте максимально подробный ответ. (Я в этом дурачок =)))

Ответы [ 4 ]

5 голосов
/ 26 мая 2010

Вы используете такой оператор, как:

Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

, чтобы загрузить и зарегистрировать класс драйвера JDBC для Derby, чтобы JDBC java.sql.DriverManager мог найти драйвер, когда вы хотите подключиться к базе данных.Если вы хотите подключиться к другой базе данных или использовать другую реализацию драйвера, вам придется изменить имя используемого вами драйвера.Конечно, вы можете поместить информацию в файл конфигурации вместо жесткого кодирования в вашей программе, чтобы вы могли изменить драйвер, не перекомпилируя вашу программу.

Например, поместите необходимую информацию в конфигурациюfile database.properties:

jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
jdbc.url=jdbc:derby:derbyDB;create=true
jdbc.username=dbusername
jdbc.password=dbpassword

Затем загрузите эти параметры в вашу программу и используйте их для открытия соединения с базой данных:

InputStream in = new FileInputStream("database.properties");
Properties props = new Properties();
props.load(in);
in.close();

String driver = props.getProperty("jdbc.driver");
Class.forName(driver);

String url = props.getProperty("jdbc.url");
String username = props.getProperty("jdbc.username");
String password = props.getProperty("jdbc.password");

Connection conn = DriverManager.getConnection(url, username, password);

См. Учебник Apache Derby и учебник Sun по JDBC .

2 голосов
/ 26 мая 2010

Чтобы создать базу данных в другом каталоге с Derby, укажите каталог в URL-адресе соединения JDBC, например:

Connection conn = DriverManager.getConnection("jdbc:derby:c:/otherDirectory/myDB");

См. Документацию Apache Derby ; этот пример взят из раздела Подключение к базам данных Руководства разработчика Derby.

1 голос
/ 26 мая 2010

Регистрация драйвера вообще не требуется, если вы используете Java 6, которая поставляется с JDBC 4. JDBC 4 выводит драйвер, требуемый из URL-адреса соединения. Водитель, конечно, должен быть где-то на вашем пути к классам ... В противном случае я бы ответил Джесперу вторым.

1 голос
/ 26 мая 2010

На самом деле Derby не является частью "стандартного" пакета Java, он включен в дистрибутив Sun для Windows, но, например, по умолчанию он не включен в OS X.

Чтобы ответить на то, что кажется вашим вопросом, вы должны добавить файл jar для требуемой базы данных в путь к классу и использовать Class.forName ("") с соответствующим драйвером для этой базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...