Java:嵌入式数据库

Dmi*_*try 3 java

我想创建一个带有嵌入式数据库的desctop应用程序.数据库是JavaDB(Derby).我已将jar文件derby.jar连接到我的项目.问题是我不明白如何注册驱动程序来使用这个数据库.据说我应该使用Class.forName("org.apache.derby.jdbc.EmbeddedDriver")但是如果那是另一个数据库并且它的驱动程序不在java标准包中呢?你可以看到我对此感到困惑.我想知道,如何使用我的连接derby.jar,如何使用其jdbc驱动程序以及如何在指定目录中创建表.

请尽可能详细地给出答案.(我在这里是个假人))))

Jes*_*per 5

您使用如下语句:

Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Run Code Online (Sandbox Code Playgroud)

加载并注册Derby的JDBC驱动程序类,以便JDBC java.sql.DriverManager可以在您想要连接到数据库时找到驱动程序.如果要连接到其他数据库或使用其他驱动程序实现,则必须更改正在使用的驱动程序的名称.当然,您可以将信息放在配置文件中,而不是在程序中对其进行硬编码,这样您就可以在不重新编译程序的情况下更改驱动程序.

例如,将必要的信息放在配置文件中database.properties:

jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
jdbc.url=jdbc:derby:derbyDB;create=true
jdbc.username=dbusername
jdbc.password=dbpassword
Run Code Online (Sandbox Code Playgroud)

然后在程序中加载这些设置并使用它们打开数据库连接:

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);
Run Code Online (Sandbox Code Playgroud)

请参阅Apache Derby教程和Sun的JDBC教程.