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数据库的驱动程序是org.apache.derby.jdbc.EmbeddedDriver,需要确保驱动程序的正确性。 4. 数据库名称 数据库名称是连接Derby数据库的必要信息,需要确保数据库名称的正确性。 结论 连接Derby数据库是Java...
这篇教程将一步步地指导您如何让 Derby 嵌入式数据库支持用户验证。 Derby 嵌入式数据库用户名和密码设置有两种方法: 方法一:配置 derby.properties 文件 通过配置 derby.properties 文件,可以实现对 Derby ...
1. **内嵌模式(Embedded Mode)**:在这种模式下,Derby数据库与应用程序运行在同一JVM中。数据库的启动和关闭由应用程序管理,对外部其他应用是不可见的,意味着其他程序无法直接访问该数据库。 2. **网络模式...
Derby数据库支持JDBC 4.0规范,这意味着开发者可以利用JDBC的新特性和属性来更高效地访问和管理数据。JDBC 4.0引入了许多改进,包括自动加载驱动、新的SQL异常处理、以及增强的连接池管理,提升了数据库操作的便捷性...
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驱动:加载`org.apache.derby.jdbc.EmbeddedDriver`。 - 数据源配置:URL通常是`jdbc:derby:databaseName;create=true`,若数据库不存在,`create=true`会自动创建。 - 连接方式:同样使用`DriverManager....
`spring-boot-starter-data-jpa`是Spring Boot提供的数据访问层的起步依赖,包含了JPA(Java Persistence API)和Hibernate等组件,而`derby`依赖则提供了运行时所需的Derby数据库。 接下来,Spring Boot会自动配置...
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....
Derby的JDBC驱动允许Java应用通过JDBC API与Derby数据库进行通信。驱动类通常为`org.apache.derby.jdbc.ClientDriver`或`org.apache.derby.jdbc.EmbeddedDriver`,前者用于网络连接,后者用于嵌入式环境。 2. jtds...
可以从Apache官方网站获取最新版本的Derby数据库。安装完成后,确保将其bin目录添加到系统路径中,以便于执行Derby的相关命令。 **2. 创建数据库** 在使用JDBC连接Derby之前,需要创建一个数据库。可以使用`ij`...
2. **支持 JDBC 和 SQL 标准**:Derby 支持 Java 数据库连接 (JDBC) 接口以及 SQL92 和 SQL99 标准,这使得开发人员能够轻松地使用标准 SQL 语法进行数据库操作。 3. **体积小巧**:整个 Derby 数据库系统的大小只有...
在Java开发中,JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问。它由一组用Java语言编写的类和接口组成。JDBC提供了诸如查询执行、结果集处理等功能,是...
- 例如,对于Derby数据库,导出`com.ibm.xsp.extlib.relational.derby`等包。 - 添加对`com.ibm.commons.jdbc`插件的依赖。 ##### 三、关系型数据库连接设置 **1. 全局JDBC连接设置** - 在`Domino/data/...
Derby提供了名为`ij`的交互式命令行工具,用于管理Derby数据库。启动该工具的方法为: ```shell java org.apache.derby.tools.ij ``` 启动后,可以通过`ij`工具执行各种SQL命令。 #### 五、连接数据库 在`ij`工具中...
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 ...
| JavaDB/Apache Derby | `jdbc:derby:dataBaseName(embedded)` 或 `jdbc:derby://hostname:portNumber/databaseName(network)` | #### 六、总结 JDBC提供了强大的工具集来处理数据库操作,无论是简单的数据检索...
下面是一个简单的示例代码,展示了如何使用Java API连接Derby数据库,并执行基本的操作: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql....
开发者只需将Derby的驱动类(通常为"org.apache.derby.jdbc.EmbeddedDriver")添加到项目的类路径中,就可以在Java代码中通过JDBC API进行数据库操作。例如,创建表、插入数据、查询信息等。 在压缩包的"src"目录下...
总结来说,通过这两个示例文件,你可以学习到如何在Java应用中使用JDK 1.7内置的Apache Derby数据库,包括连接数据库、创建表、插入和查询数据,以及事务管理。这将为你的Java开发工作提供一个简单而实用的数据库...