创建并连接derby数据库

来源:互联网 发布:预产期软件 编辑:程序博客网 时间:2024/05/12 06:35

技术博客: http://blog.sina.com.cn/s/articlelist_1766082610_0_1.html

 

 

Derby数据库有两种运行模式(Derby的jar包都在%JAVA_HOME%/db/lib,没有的就自己下载derby.jar)

您可以采用两种模式来部署和运行Derby:

在嵌入式模式(embedded mode)中,Derby只处理来自与应用程序使用的JVM相同的JVM的请求。在采用嵌入式模式来使用Derby时,应用程序会在启动和关闭时分别自动启动或停止关系引擎。Derby包的derby.jar文件(2MB)包含了Derby 数据库引擎和嵌入式JDBC驱动程序。

在网络服务器模式(network server mode)中,Derby会处理来自不同JVM的应用程序请求。或者,如果您喜欢使用Perl、PHP、Python或C来编写程序,那么您也可以部署一个Derby网络服务器,并通过各种语言特有的模块连接到这个服务器上,例如Perl的DBI(Database Interface)和PHP的ODBC(Open Database Connectivity)。Derby的derbynet.jar文件(0.2MB)包含了Derby Network Server。

 

一、嵌入式数据库

public class EmbeddedDerbyTester {
    public static void main(String[] args) {
        String driver = "org.apache.derby.jdbc.EmbeddedDriver";
//在derby.jar里面
        String dbName="EmbeddedDB";
       String dbURL = "jdbc:derby:" + dbName + ";create=true;territory=zh_CN;user=root;password=root";// create=true表示当数据库不存在时就创建它
        try {           
            Class.forName(driver);
            Connection conn = DriverManager.getConnection(dbURL);
//启动嵌入式数据库
            Statement st = conn.createStatement();
            st.execute("create table foo (FOOID INT NOT NULL,FOONAME VARCHAR(30) NOT NULL)");
//创建foo表
            st.executeUpdate("insert into foo(FOOID,FOONAME) values (1,'chinajash')");//插入一条数据
            ResultSet rs = st.executeQuery("select * from foo");//读取刚插入的数据
            while(rs.next()){
                int id = rs.getInt(1);
                String name = rs.getString(2);
                System.out.println("id="+id+";name="+name);
            }
        } catch(Exception e){
            e.printStackTrace();
        }
    }
}

运行上面程序后,会在当前目录生成名为EmbeddedDB的文件夹,既是EmbeddedDB数据库的数据文件存放的地方,控制台将输出

id=1;name=chinajash

二、网络数据库

public class NetworkServerDerbyTester {
    public static void main(String[] args) {
        String driver = "org.apache.derby.jdbc.ClientDriver";
//在derbyclient.jar里面
        String dbName="NetworkDB";
        String connectionURL = "jdbc:derby://localhost:1527/" + dbName + ";create=true";
        try {
           

            NetworkServerControl derbyServer = new NetworkServerControl();//NetworkServerControl类在derbynet.jar里面
            PrintWriter pw = new PrintWriter(System.out);//用系统输出作为Derby数据库的输出
            derbyServer.start(pw);//启动Derby服务器
            Class.forName(driver);
            DriverManager.getConnection(connectionURL);
            //do something
            derbyServer.shutdown();
//关闭Derby服务器
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

运行上面程序后,会在当前目录生成名为NetworkDB的文件夹

 

效果实例图:

创建并连接derby数据库