`

JDBC访问embedded Derby数据库

    博客分类:
  • Java
阅读更多
Apache Derby: http://db.apache.org/derby/index.html

最近在一个业余项目中使用了derby数据库来存储task的创建及完成记录。derby是apache的一个开源数据库产品,有丰富的特性。它支持client/server模式外,也支持embedded模式,即只需一个包含embedded driver的jar包,就可以在代码内启动及关闭数据库。在小项目中使用嵌入式的数据库也是一个不错的选择。
  这里使用jdbc来连接derby进行操作并无特别之处。只需要将embedded driver包derby.jar包含进class_path,将创建driver实例,使用通常jdbc代码即可访问。
String driver = "org.apache.derby.jdbc.EmbeddedDriver";
Class.forName(driver).newInstance();


以下是用junit4框架写的explore代码:
package com.durian.derby;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Enumeration;
import java.util.Properties;

import org.junit.Test;

public class ExploreDerbyTest {

    @Test
    public void testCreateDB() 
        throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException {
        String driver = "org.apache.derby.jdbc.EmbeddedDriver";
        String dbName = "derbyDB";
        String protocol = "jdbc:derby:";
        
        Properties props = new Properties();
        props.put("user", "user1");
        props.put("password", "password");
        
        Class.forName(driver).newInstance();
        
        System.out.println(DriverManager.getLoginTimeout());
        
        Enumeration<Driver> ds = DriverManager.getDrivers();
        while (ds.hasMoreElements()) {
            System.out.println(ds.nextElement());
        }
        Connection conn = DriverManager.getConnection(protocol+dbName+";create=true");
        //Properties p = conn.getClientInfo();
        //System.out.println(p);
        conn.setAutoCommit(false);
        
        Statement s = conn.createStatement();
        //s.execute("create table location2(num int, addr varchar(40))");
        //System.out.println(s.getFetchDirection() + " | " + 
        //        s.getFetchSize() + " | " +  s.getMaxFieldSize()  + " | " + 
        //        s.getMaxRows()  + " | " +  s.getQueryTimeout());
        conn.commit();
        conn.close();
    }
    
    @Test
    public void testCreateTables()
        throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
        String driver = "org.apache.derby.jdbc.EmbeddedDriver";
        String protocol = "jdbc:derby:";
        String dbName="derbyDB";
        
        String[] sqls = {
                "create table mail_server(id int, name varchar(50), host varchar(50), port int, protocol varchar(10), is_deleted char(1), description varchar(100) )",
                "create table job_history(id int, mail_server_id int, user_id varchar(50), password varchar(50), folder_name varchar(50), befor_days int, status varchar(10), " +
                "created_time time, started_time time, stopped_time time)"
        };
        Class.forName(driver).newInstance();
        Connection conn = DriverManager.getConnection(protocol+dbName);
        conn.setAutoCommit(false);
        Statement stmt = conn.createStatement();
        for (int i = 0; i < sqls.length; i++) {
            stmt.addBatch(sqls[i]);
        }
        int[] r = stmt.executeBatch();
        System.out.println(r);
        conn.commit();
        conn.close();
    }
}


执行testCreateDB()后将在当前路径下创建一个名为derbyDB文件夹,包含derby数据库的相库文件。关于derby的配置问题,还有待研究。

由于对jdbc不是很熟悉,顺便记一下jdbc访问数据库的过程,尽管以上代码可以演示说明:
(1)所有相关类及接口都在包java.sql中。另外还有javax.sql,都是扩展内容
(2)由DriverManager获得到要连接数据库的Connection
(3)Connection创建Statement或PreparedStatement
(4)Statement或PreparedStatement执行sql语句,有可能返回ResultSet结果集。可以对ResultSet进行遍历访问
(5)若有insert/update/delete等数据操作,需调用Connection的commit().(如果设置为不自动提交)
(6)conn.close()断开与数据库的连接。
分享到:
评论

相关推荐

    连接derby数据库方法—附图

    Derby数据库的驱动程序是org.apache.derby.jdbc.EmbeddedDriver,需要确保驱动程序的正确性。 4. 数据库名称 数据库名称是连接Derby数据库的必要信息,需要确保数据库名称的正确性。 结论 连接Derby数据库是Java...

    derby embedded模式设置用户名和密码

    这篇教程将一步步地指导您如何让 Derby 嵌入式数据库支持用户验证。 Derby 嵌入式数据库用户名和密码设置有两种方法: 方法一:配置 derby.properties 文件 通过配置 derby.properties 文件,可以实现对 Derby ...

    derby数据库[文].pdf

    1. **内嵌模式(Embedded Mode)**:在这种模式下,Derby数据库与应用程序运行在同一JVM中。数据库的启动和关闭由应用程序管理,对外部其他应用是不可见的,意味着其他程序无法直接访问该数据库。 2. **网络模式...

    java derby数据库详解

    Derby数据库支持JDBC 4.0规范,这意味着开发者可以利用JDBC的新特性和属性来更高效地访问和管理数据。JDBC 4.0引入了许多改进,包括自动加载驱动、新的SQL异常处理、以及增强的连接池管理,提升了数据库操作的便捷性...

    Derby安装,创建数据库,在JAVA程序中使用Derby

    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 ...

    jdbc接连数据库:oracle/derby/mysql

    - JDBC驱动:加载`org.apache.derby.jdbc.EmbeddedDriver`。 - 数据源配置:URL通常是`jdbc:derby:databaseName;create=true`,若数据库不存在,`create=true`会自动创建。 - 连接方式:同样使用`DriverManager....

    spring-boot-derby:Apache Derby嵌入式数据库的Spring Boot Java技术员

    `spring-boot-starter-data-jpa`是Spring Boot提供的数据访问层的起步依赖,包含了JPA(Java Persistence API)和Hibernate等组件,而`derby`依赖则提供了运行时所需的Derby数据库。 接下来,Spring Boot会自动配置...

    Derby和Sqlite数据库配置与使用.pdf

    3. Java程序访问Derby数据库: ```java import java.sql.*; public class Derby { Connection conn = null; Statement stat = null; public void connect() throws Exception { Class.forName("org.apache....

    jdbc数据库驱动.rar

    Derby的JDBC驱动允许Java应用通过JDBC API与Derby数据库进行通信。驱动类通常为`org.apache.derby.jdbc.ClientDriver`或`org.apache.derby.jdbc.EmbeddedDriver`,前者用于网络连接,后者用于嵌入式环境。 2. jtds...

    JdbcDerby:通过jdbc与derby连接

    可以从Apache官方网站获取最新版本的Derby数据库。安装完成后,确保将其bin目录添加到系统路径中,以便于执行Derby的相关命令。 **2. 创建数据库** 在使用JDBC连接Derby之前,需要创建一个数据库。可以使用`ij`...

    deby数据库使用详解

    2. **支持 JDBC 和 SQL 标准**:Derby 支持 Java 数据库连接 (JDBC) 接口以及 SQL92 和 SQL99 标准,这使得开发人员能够轻松地使用标准 SQL 语法进行数据库操作。 3. **体积小巧**:整个 Derby 数据库系统的大小只有...

    JDBC连接数据库大全

    在Java开发中,JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问。它由一组用Java语言编写的类和接口组成。JDBC提供了诸如查询执行、结果集处理等功能,是...

    XPages访问关系型数据库的方法.pdf

    - 例如,对于Derby数据库,导出`com.ibm.xsp.extlib.relational.derby`等包。 - 添加对`com.ibm.commons.jdbc`插件的依赖。 ##### 三、关系型数据库连接设置 **1. 全局JDBC连接设置** - 在`Domino/data/...

    derby安装以及嵌入java初步说明

    Derby提供了名为`ij`的交互式命令行工具,用于管理Derby数据库。启动该工具的方法为: ```shell java org.apache.derby.tools.ij ``` 启动后,可以通过`ij`工具执行各种SQL命令。 #### 五、连接数据库 在`ij`工具中...

    derby使用

    private static String driver = "org.apache.derby.jdbc.EmbeddedDriver"; private static String protocol = "jdbc:derby:"; private String dbName = "E:\\Java\\Joy\\derby\\Derby_data\\firstdb"; public ...

    JDBC Java代码

    | JavaDB/Apache Derby | `jdbc:derby:dataBaseName(embedded)` 或 `jdbc:derby://hostname:portNumber/databaseName(network)` | #### 六、总结 JDBC提供了强大的工具集来处理数据库操作,无论是简单的数据检索...

    derby入门知识 含demo代码

    下面是一个简单的示例代码,展示了如何使用Java API连接Derby数据库,并执行基本的操作: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql....

    Swing+derby仿QQ聊天软件及源码

    开发者只需将Derby的驱动类(通常为"org.apache.derby.jdbc.EmbeddedDriver")添加到项目的类路径中,就可以在Java代码中通过JDBC API进行数据库操作。例如,创建表、插入数据、查询信息等。 在压缩包的"src"目录下...

    学习使用jdk1.7中内置数据库Derby(一)

    总结来说,通过这两个示例文件,你可以学习到如何在Java应用中使用JDK 1.7内置的Apache Derby数据库,包括连接数据库、创建表、插入和查询数据,以及事务管理。这将为你的Java开发工作提供一个简单而实用的数据库...

Global site tag (gtag.js) - Google Analytics