现在我已经能用DbVisualizer读取derby类型的数据库文件,可是derby数据库文件中数据是发生变化的,而我需要定时去读取文件,才能读取新增的数据。另外,怎样用Python读取这一类数据库数据呢?我只能用python读取MySQL数据?问题已经解决了,主要是调用derby自带的JDBC驱动,问题就了已经解决大半了,后面可自行修改
1,下载并安装Derby:下载地址:http://db.apache.org/derby /derby_downloads.html,下载最新版本。我用的是10.5.3.0。解压缩到任意文件夹,我的是:E:\Java\Joy\derby2,配置环境变量:建立DERBY_HOME,值:E:\Java\Joy\derby\db- derby-10.5.3.0-bin\db-derby-10.5.3.0-bin在Path加入:%DERBY_HOME%\bin在CLASSPATH加入:%DERBY_HOME%\lib \derby.jar;%DERBY_HOME%\lib\derbyclient.jar;%DERBY_HOME%\lib\derbytools.jar;%DERBY_HOME%\lib\derbynet.jar3,测试看看Derby安装成功没有开始—Run—CMD运行 sysinfo如果安装成功,将会看到相关信息,下面是截取的部分信息。——— Derby 信息 ——–JRE – JDBC: Java SE 6 – JDBC 4.0[E:\Java\Joy\derby\db-derby-10.5.3.0-bin\db-derby-10.5.3.0-bin\lib\derby.jar] 10.5.3.0 – (802917)[E:\Java\Joy\derby\db-derby-10.5.3.0-bin\db-derby-10.5.3.0-bin\lib\derbytools.jar] 10.5.3.0 – (802917)[E:\Java\Joy\derby\db-derby-10.5.3.0-bin\db-derby-10.5.3.0-bin\lib\derbynet.jar]10.5.3.0 – (802917)[E:\Java\Joy\derby\db-derby-10.5.3.0-bin\db-derby-10.5.3.0-bin\lib\derbyclient.jar] 10.5.3.0 – (802917)4,创建和使用数据库打开命令行,进入想要放置数据库的目录,我的是:E:\Java\Joy \derby\Derby_data然后输入ij将会看到:ij 版本 10.5ij>接下来就可以创建数据库了。例:创建firstdb数据库:ij> connect ‘jdbc:derby:firstdb;create=true’;连接firstdb数据库:ij> connect ‘jdbc:derby:firstdb’;查询数据库等操作,只需要输入相应的Sql语句即可。创建一个table:create table firsttable(id int primary key, name varchar(20));插入数据:insert into firsttable values(1, ‘Hotpepper’);在命令行测试一下:select * from firsttable;结果如下:ID |NAME——————————–1 |Hotpepper其它命令断开连接:ij> disconnect;退出ij:ij> exit;5,在Java程序中使用Derby首先要把相关的Derby jar包加进来(Build Path)。把derby.jar加进来,如果没有加进来会出现 “java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver”错误好了,下面写JAVA代码进行测试:import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Test {private static String driver = “org.apache.derby.jdbc.EmbeddedDriver”;private static String protocol = “jdbc:derby:”;String dbName = “E:\\Java\\Joy\\derby\\Derby_data\\firstdb”;static void loadDriver() {try {Class.forName(driver).newInstance();System.out.println(“Loaded the appropriate driver”);} catch (Exception e) {e.printStackTrace();}}public void doIt() {Connection conn = null;Statement s = null;ResultSet rs = null;System.out.println(“starting”);try {conn = DriverManager.getConnection(protocol + dbName+ “;create=true”);} catch (SQLException e) {e.printStackTrace();}System.out.println(“Connected to and created database ” + dbName);try {s=conn.createStatement();rs=s.executeQuery(“select * from firsttable”);while (rs.next()) {System.out.println(rs.getInt(1));System.out.println(rs.getString(2));}} catch (SQLException e1) {e1.printStackTrace();}try {conn.close();conn = null;s.close();s = null;rs.close();rs = null;} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {Test t = new Test();t.loadDriver();t.doIt();}}OK,完成了。—————————————————-附:复制粘贴Derby数据库:备份Derby数据库(derby-10.5.3.0)小试了一下,很简单的,就复制粘贴就好了。找到想要复制的数据库文件夹,比如:C:\Program Files\SQuirreL SQL Client\firstdb我们就把整个firstdb文件夹复制下来,然后粘贴到想要粘贴的地方。就那么简单。以上是我突发奇想试试看,没想到就成了。在网上搜了一下,貌似derby备份的方法不是这样的,而这种方法莫非是传说中的“热备份”?6,在DbVisualizer中使用Derby选择Database时选择到数据库的目录。 追问 这个我已经实现了,我想做到DbVisualizer定时的读取derby数据库文件