- 浏览: 253385 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tanglingshuai:
liulehua 写道根本原因是:没有把该对象对应的主键保存到 ...
关于: org.hibernate.StaleStateException: Batch update -
javeye:
转载了你的文章http://javeye.iteye.com/ ...
关于在tomcat下配置 error-page 500错误不能在IE下转发页面的问题 -
imlsq:
嘿嘿, 使用SEAM 7-8个月时间了还是放弃使用SEAM的想 ...
发现一个Seam做的企业应用,blackberry的在线商店 -
yuanliyin:
我也在用,唯一不爽的就是性能!
发现一个Seam做的企业应用,blackberry的在线商店 -
perfect:
假的 ,大家不要上当 ,根本不能用
HttpWatch 6.1.41 许可文件
学习使用Java DataBase
在前几天,转贴了java网站上一篇介绍使用Java DB的文章,http://blog.matrix.org.cn/page/icess?entry=using_java_db_in_desktop 里面介绍了如何在桌面程序中使用java DB,今天使用了一下感觉很不错.
但上面那篇文章中,是通过一个桌面程序来介绍java DB的,看的时候可能会感到比较混乱,今天我就按照他的例子,从中拿出 介绍java db的代码, 来看看如何使用它吧!
在看如何使用java db以前,先看看java db 是什么, 有什么特点.
What's Java DB?
要使用Java DB, 就不免想问起什么是java db, 其实java db就是在ibm 捐赠给Apache开源项目组的一个用java实现的轻量级嵌入式数据库代码基础上发展起来的. sun Java DB主页的描述如下:
Apache Derby 项目主页:http://db.apache.org/derby/
Java DB主页: http://developers.sun.com/prodtech/javadb/
Java DB 的特性以及优点:
Sun Java DB is based on the open source Apache Derby project. It provides a full-featured, robust, small-footprint Java database management system that is cost effective and simple to deploy.
可以看出Java DB的优点还是很多的.以后在sun 的软件中都带有Java DB了.
下面来看看如何使用Java DB吧.
嵌入式数据库和一般的数据库不同,在使用以前,需要指定一个存放数据的目录和指定数据库的配置文件.
配置文件可以很简单:不用解释了 如下:
# Sample ResourceBundle properties file
user=
addressuserpassword=
addressuserderby.driver=
org.apache.derby.jdbc.EmbeddedDriverderby.url=
jdbc:derby:db.table=
ADDRESSdb.schema=
APP当然了 以上配置信息,也可以用一个Property 属性对象来构造,然后在得到数据库连接的时候把该对象传递进去也是可以的. 不过使用配置文件是为了方便修改相关配置信息而设定的.
通过如下方法来设置 数据库数据的存放目录:
private void setDBSystemDir() {
// decide on the db system directory
//String userHomeDir = System.getProperty("user.home", ".");
String userHomeDir = System.getProperty("user.dir", ".");
String systemDir = userHomeDir + "/.addressbook";
System.setProperty("derby.system.home", systemDir);
// create the db system directory
File fileSystemDir = new File(systemDir);
fileSystemDir.mkdir();
}
然后就是加载数据库驱动了, Java DB的数据库驱动是集成在一起的,也是通过 Class.forName() 的方式加载的,内嵌的驱动名字是
org.apache.derby.jdbc.EmbeddedDriver 本例子中使用下面的方法加载驱动.
private void loadDatabaseDriver(String driverName) {
// load Derby driver
try {
Class.forName(driverName);
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
}
这样,加载了驱动以后,只有得到Connection就可以操作数据了.
在操作数据以前,我们先建立一个 数据表, 使用的sql 语句如下:
private static final String strCreateAddressTable =
"create table APP.ADDRESS (" +
" ID INTEGER NOT NULL PRIMARY KEY GENERATED
ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1)," +
" LASTNAME VARCHAR(30), " +
" FIRSTNAME VARCHAR(30), " +
" MIDDLENAME VARCHAR(30), " +
" PHONE VARCHAR(20), " +
" EMAIL VARCHAR(30), " +
" ADDRESS1 VARCHAR(30), " +
" ADDRESS2 VARCHAR(30), " +
" CITY VARCHAR(30), " +
" STATE VARCHAR(30), " +
" POSTALCODE VARCHAR(20), " +
" COUNTRY VARCHAR(30) " +
")";
然后使用如下方法来建立数据库和数据表:
private boolean createTables(Connection dbConnection) {
boolean bCreatedTables = false;
Statement statement = null;
try {
statement = dbConnection.createStatement();
// 创建表格...
statement.execute(strCreateAddressTable);
bCreatedTables = true;
} catch (SQLException ex) {
ex.printStackTrace();
}
return bCreatedTables;
}
private boolean createDatabase() {
boolean bCreated = false;
Connection dbConnection = null;
String dbUrl = getDatabaseUrl();
dbProperties.put("create", "true");
try {
dbConnection = DriverManager.getConnection(dbUrl, dbProperties);
bCreated = createTables(dbConnection);
} catch (SQLException ex) {
}
dbProperties.remove("create");
return bCreated;
}
由于是嵌入式数据库,创建表格也要编程来实现,当然也有和IDE配合使用的插件可以使用.
在创建数据库和表时, 需要指定 一个create 属性为true, 就象上面的那样, 同样,在断开连接 关闭数据库时,我们也要指定属性 用编程的方法来关闭数据库, 这是和普通数据库不同的地方. 下面是关闭数据库的代码:
public void disconnect() {
if(isConnected) {
String dbUrl = getDatabaseUrl();
dbProperties.put("shutdown", "true");
try {
DriverManager.getConnection(dbUrl, dbProperties);
} catch (SQLException ex) {
}
isConnected = false;
}
}
然后我们就可以通过得到Connection 象操作普通数据库一样来操作Java DB了. 如下:
dbConnection = DriverManager.getConnection(dbUrl, dbProperties);
stmtSaveNewRecord = dbConnection.prepareStatement(strSaveAddress, Statement.RETURN_GENERATED_KEYS);
性能如何呢: 经过我的测试 插入 100 行(每行有11个字符串) 数据 要2100 多毫秒. 取出100 行需要 1500多毫秒 不知道大家认为如何.
本文用到的全部代码: 可以在此出下载: http://icess.my.china.com/downloads/index.htm
发表评论
-
在derby(Java DB) 中操作 clob 和 blob
2006-04-14 15:23 1508在前面一篇文章中, ... -
利用swing开源组件和netbeans快速构建豪华swing界面
2006-04-15 13:41 1449利用swing开源组件和netbeans快速构建豪华s ... -
Java Pet Store 开始全面使用 Web 2.0 技术
2006-05-16 21:58 1062Java Pet Store 开 ... -
Hibernate Validator 简介
2006-05-17 10:35 1272Hibernate Validator 简介 ... -
Google发布AJAX开发工具 Google Web Toolkit
2006-05-17 21:17 899Google Web Toolkit - Build ... -
解析 Hibernate Validator
2006-05-18 15:17 1483任何获得Matrix授权的网站,转载请保留以下作者信 ... -
Spring in Action 笔记(I)
2006-05-22 14:13 885By : icess ,我的部落格 http:// ... -
Spring in Action 笔记(II)
2006-05-25 00:04 1160... -
Spring in Action 笔记(III) -- 在Spring下的Hibernate数据操作
2006-05-27 11:01 831Spring in A ... -
Spring in Action 笔记 (IV) -- i18n问题和自定义属性编辑器
2006-05-29 11:24 986Spring in Action 笔记 (IV) -- i18 ... -
Breezy简介 -- 快速开发Swing程序!
2006-06-04 22:33 1423Breezy简介 -- 快速开发Swing程序! ... -
最新消息 ,开源嵌入式数据库 Derby(JavaDB) 绑定在JDK 1.6中.
2006-06-18 18:48 1716如下:Source: Fran ... -
callisto(Eclipse 3.2) 迟到了 ?
2006-06-30 23:04 783在今天早些时候访问 callisto 的主页(http://w ... -
Callisto 终于可以下载了.
2006-07-01 04:47 783Callisto 终于可以下载了. Eclipse 3.2 ... -
最近想研究一下DWR 收集一些从入门到精通的系列资料
2006-07-13 15:55 940最近想研究一下DWR 收集一些从入门到精通的系列资料, 以备将 ... -
decode javascript.encode using java
2006-08-01 13:18 1551在前面一篇文章(http://www.hexiao.cn/bl ... -
Wicket 入门示例 :Hello World.
2006-08-05 10:38 1230Wicket http://wicketframework.o ... -
Wicket 教程2: 如何使用Label,MultiLineLabel,Border,BoxBorder
2006-08-07 15:29 1407上次介绍了一个wicket的一个HelloWorld入门示例, ... -
Wicket 教程3:使用 PageView 来调试页面
2006-08-08 09:22 1569使用 PageView 来调试页面.Wicket中提供了一个P ... -
Wicket 教程4:如何使用 Include,Panel,Fragment,Link
2006-08-08 09:25 2073Wicket 教程4:如何使用 ...
相关推荐
使用Java Derby时,开发者可以通过JDBC(Java Database Connectivity)接口进行数据库操作。例如,创建数据库只需一行代码`DatabaseConnection.getConnection("jdbc:derby:myDB;create=true")`。此外,Derby支持...
3. **嵌入式和服务器模式**:Derby可以作为嵌入式数据库在应用程序内部运行,也可以作为一个独立的服务提供给多个客户端连接。这种灵活性使得它在多种场景下都能发挥作用。 4. **SQL支持**:Derby完全符合SQL:2003...
Derby数据库是一种嵌入式关系数据库管理系统,可以嵌入到Java应用程序中,提供了一个轻量级、可靠的数据库解决方案。 连接Derby数据库方法 1. 使用Database模式 在Eclipse中,可以使用Database模式来连接Derby...
《基于嵌入式开源数据库Derby实现信息服务平台》这篇文章探讨了如何通过使用开源的嵌入式数据库Derby和Java技术来构建一个高效的信息服务平台。该平台具有简单的配置、跨平台兼容性和高度可移植性的特点。 #### 二...
Apache Derby,也被称为Java DB,是由Apache软件基金会开发的一个开源、免费的嵌入式数据库管理系统。它是完全用Java语言编写,因此具备跨平台兼容性,可以在任何支持Java的环境中运行。"derby-10.4.2.0" 标题表明这...
Java Derby数据库是一个轻量级、完全用Java语言编写的开源数据库管理系统,被集成在Java SE 6(代号Mustang)中,为...通过学习和掌握Derby,开发者能够更好地利用Java 6的数据库编程新特性,提高开发效率和代码质量。
通过上述步骤,初学者能够成功安装、配置、创建并连接Derby数据库,为进一步学习和使用Derby数据库奠定了基础。在实际应用中,还应了解如何创建表、插入数据、更新和删除数据,以及查询语言SQL的相关知识,以便更好...
Derby是一个嵌入式数据库,这意味着它可以直接在应用程序中运行,无需额外的服务器进程。这对于小型应用或者测试环境来说非常理想,因为它减少了部署的复杂性。Derby支持SQL标准,包括SQL92和部分SQL:2003,使得与...
Derby被设计为嵌入式数据库,适用于Java应用程序,尤其在桌面应用、测试环境以及小型服务器场景中非常实用。这个压缩包文件"DERBY_PJ"可能包含了关于如何使用Derby数据库的实例和教程。 首先,让我们了解Derby的...
它被设计为嵌入式数据库,适合于Java应用程序。Derby基于Java语言,因此它完全兼容JDBC(Java Database Connectivity),这使得它在Java开发环境中特别方便。 `ij`是Derby自带的一个交互式的SQL命令行工具,用于...
3. **嵌入式数据库**:Derby可以被直接嵌入到Java应用程序中,作为一个类库运行,无需独立服务器进程。这对于开发简单应用或者进行快速原型开发非常方便。 4. **网络模式**:除了嵌入式模式,Derby还支持网络模式,...
Derby是Apache软件基金会的一个项目,它是一个完全开源的Java数据库,可以作为嵌入式数据库使用。Derby基于Java,因此与Java应用程序的集成非常紧密,它还支持标准的JDBC和SQL。 **HSQLDB** HyperSQL Database...
### Java嵌入式数据库H2学习大全 #### H2数据库简介与特性 H2是一款功能强大的开源嵌入式数据库系统,完全用Java语言编写。它以其高性能、易用性和广泛的兼容性著称,在开发测试环境及小型应用项目中非常受欢迎。 ...
Java编写的图书管理系统是一款基于Derby数据库的家庭用图书管理软件,是学习和实践Java数据库连接(JDBC)技术的一个典型示例。这个项目不仅适用于个人家庭管理私人图书收藏,也适用于小型图书馆或阅读爱好者,方便...
文档中提到的Derby和SQLite是两种广泛使用的嵌入式数据库。Derby,又称JavaDB,是一个开源的关系型数据库管理系统,支持标准SQL语句,并且能够轻松地与Java程序集成。它采用了Java平台,使得其能够跨平台使用,具有...
这个"derby小型数据库 jar"标题暗示了我们正在讨论的是Derby数据库的Java Archive (JAR) 文件,通常用于在Java应用中嵌入式使用数据库。 Derby数据库的特点包括轻量级、小巧高效,非常适合于学习、开发、测试和小型...
在IT行业中,数据库管理系统是核心组成部分之一,而Apache Derby是一个轻量级、嵌入式的Java关系型数据库,常用于小型应用程序或开发环境中。本项目"商品出入库例子+derby数据库"提供了一个实用的示例,展示了如何在...
Apache Derby是一款开源的关系型数据库管理系统,它是Java编写并且完全符合JDBC(Java Database Connectivity)标准的。在Java开发环境中,Derby常被用作轻量级数据库解决方案,尤其适用于嵌入式系统或者测试环境。 ...