- 浏览: 562468 次
- 性别:
- 来自: 安徽
-
文章分类
最新评论
-
baynjh:
jp.ne.so_net.ga2.no_ji.jcom.JCo ...
java应用jcom将word转pdf -
zgw06629:
你好,请问你都做了哪些修改呢?是在客户端还是服务端?
http上传文件深度解析-高性能http传输 -
eidolon:
翻译有误。 l ?:意思是操作符左边的符号( ...
BNF 和EBNF的含义与用法(感谢译者:Sunnybill) -
huoyj:
请教一个问题,是不是HTTP请求里面没有包含上传文件在客户端的 ...
http上传文件深度解析-高性能http传输 -
a49688448:
“认清” 我还以为google怎么你了
最近终于认清了google
Derby并不是一个新的数据库产品,它是由IBM捐献给Apache的DB项目的一个纯Java数据库,JDK6.0里面带的这个Derby的版本是10.2.1.7,支持存储过程和触发器;有两种运行模式,一种是作为嵌入式数据库,另一种是作为网络数据库,前者的数据库服务器和客户端都在同一个JVM里面运行,后者允许数据库服务器端和客户端不在同一个JVM里面,而且允许这两者在不同的物理机器上.值得注意的是JDK6里面的这个Derby支持JDK6的新特性JDBC 4.0规范(JSR 221),现在我们如果要练习JDBC的用法,没有必要单独装一个数据库产品了,直接用Derby就行.
下面是个使用derby的简单例子:
首先导入JAR包:derby.jar,如果你装的是JDK6,在C:\Program Files\Sun\JavaDB\lib目录下就可以找到.
然后就要创建数据库了:
代码
private Connection getConnection() throws SQLException {
Connection connection = DriverManager
.getConnection("jdbc:derby:userDB;create=true;user=test;password=test");
connection.setAutoCommit(false);
return connection;
}
其中userDB是要连接数据库的名字,create=true表示如果该数据库不存在,则创建该数据库,如果数据库存在,则用用户user=test;密码password=test连接数据库.
有了数据库,接下来该建表了:
代码
private void createTable(Connection connection) throws SQLException {
Statement statement = connection.createStatement();
String sql = "create table USERS("
+ " ID BIGINT not null generated by default as identity,"
+ " USER_NAME VARCHAR(20) not null,"
+ " PASSWORD VARCHAR(20),"
+ " constraint P_KEY_1 primary key (ID))";
statement.execute(sql);
sql = "create unique index USER_NAME_INDEX on USERS ("
+ " USER_NAME ASC)";
statement.execute(sql);
statement.close();
}
创建了 USERS表,包括ID,USER_NAME,PASSWORD三个列,其中ID是主键,其中generated by default as identity 的作用类似sequence,identity是定义自动加一的列,
GENERATED BY ALWAYS AS IDENTITY
GENERATED BY DEFAULT AS IDENTITY
By always和by default是说明生成这个IDENTITY的方式。
By always是完全由系统自动生成。
by default是可以由用户来指定一个值。
编写与USERS表对应的javabean(这个就不多说了),:
代码
public class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Long id;
private String userName;
private String password;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
接下来就可以就数据库进行增删改查的操作了:
插入数据:
代码
private void create(User user) {
Connection connection = null;
try {
connection = this.getConnection();
PreparedStatement statement = connection
.prepareStatement("insert into users (user_name,password) values(?,?)");
int index = 1;
statement.setString(index++, user.getUserName());
statement.setString(index++, user.getPassword());
statement.execute();
user.setId(this.getId(connection));
connection.commit();
} catch (SQLException e) {
rollback(connection);
throw new RuntimeException(e);
} finally {
if (connection != null) {
close(connection);
}
}
}
代码
private Long getId(Connection connection) throws SQLException {
CallableStatement callableStatement = connection
.prepareCall("values identity_val_local()");
ResultSet resultSet = callableStatement.executeQuery();
resultSet.next();
Long id = resultSet.getLong(1);
resultSet.close();
callableStatement.close();
return id;
}
getId方法是获得系统默认的id值,是通过identity_val_local()获得的,而函数IDENTITY_VAL_LOCAL()则可以在INSERT语句执行之后,为我们返回刚才系统为id所产生的值.感觉还是有点想sequence的curr_val.
修改数据:
代码
private void update(User user) {
Connection connection = null;
try {
connection = this.getConnection();
PreparedStatement statement = connection
.prepareStatement("update users set user_name=?,password=? where id=?");
int index = 1;
statement.setString(index++, user.getUserName());
statement.setString(index++, user.getPassword());
statement.setLong(index++, user.getId());
statement.execute();
connection.commit();
} catch (SQLException e) {
rollback(connection);
throw new RuntimeException(e);
} finally {
if (connection != null) {
close(connection);
}
}
}
删除数据:
代码
public void delete(Long id) {
Connection connection = null;
try {
connection = this.getConnection();
PreparedStatement statement = connection
.prepareStatement("delete from users where id=?");
statement.setLong(1, id);
statement.execute();
connection.commit();
} catch (SQLException e) {
rollback(connection);
throw new RuntimeException(e);
} finally {
if (connection != null) {
close(connection);
}
}
}
查询数据:
代码
public User findById(Long id) {
Connection connection = null;
try {
connection = this.getConnection();
PreparedStatement statement = connection
.prepareStatement("select user_name,password from users where id=?");
statement.setLong(1, id);
ResultSet resultSet = statement.executeQuery();
User user = null;
if (resultSet.next()) {
user = new User();
user.setId(id);
user.setUserName(resultSet.getString("user_name"));
user.setPassword(resultSet.getString("password"));
}
resultSet.close();
statement.close();
connection.commit();
return user;
} catch (SQLException e) {
throw new RuntimeException(e);
} finally {
if (connection != null) {
close(connection);
}
}
}
以上就是derby的简单操作.
发表评论
-
java获取项目路径
2010-12-16 13:40 1242在jsp和class文件中调用的相对路径不同。 在jsp里,根 ... -
CSS控制DIV圆角
2010-12-09 15:51 1933<!DOCTYPE HTML PUBLIC " ... -
强大的web打印功能
2010-08-24 11:17 11611.<html> 2.<head> ... -
一个java写的托盘练习
2010-08-14 15:48 1023package minsize;import javax.sw ... -
Java的SystemTray类的使用方法
2010-08-14 15:38 3372Java的SystemTray类的使用方法 JDK1.6版增 ... -
Hibernate中发生"Session is closed" 的另一种可能!
2010-07-17 23:39 1763Hibernate中发生"Session ... -
求园柱体的表面积和体积
2010-06-13 11:50 32851.先创建一个Point类,然后定义Trianglele类。在 ... -
写一个Point类,计算两个Point实例之间的距离;写一个判断点是否在圆内的方法。
2010-06-13 11:47 8028写一个Point类,计算 ... -
打印分页代码
2009-10-27 15:27 1285<!-- define some variables u ... -
非常好的打印预览代码
2009-10-27 15:24 1973<!DOCTYPE html PUBLIC &quo ... -
http上传文件深度解析-高性能http传输
2009-10-24 16:59 11391http上传文件深度解析-高性能http传输 2008-12 ... -
用java获得MAC地址
2009-10-14 15:55 2820package com.etong.bms; impor ... -
使用java2word向已经建好的表格里插入数据
2009-05-18 13:41 2799上一篇讲如何NEW一个已经填充好数据的表格出来,这篇我介绍 ... -
使用java2word向word文档里插入文本、表格、图片
2009-05-18 13:41 5951import java.util.ArrayList; ... -
JSP request对象属性列表
2009-05-15 15:05 3041<% out.println("Protoc ... -
LDAP 集成应用实例
2009-05-15 13:58 9352我们部门有一个系统是专门用来记录大家的请假和加班的.这个系统有 ... -
IBM Portal与单点登录、集成企业级应用
2009-05-15 11:19 3528IBM Portal与单点登录、集 ... -
WAP 服务器设置
2009-04-11 15:53 1760WAP 服务器设置 二十一世纪是信息的世纪,以IP技 ... -
本地图片预览
2009-04-01 17:11 1206<?xml version="1.0" ... -
图片预装载技术
2009-04-01 17:08 1252<html> <body> < ...
相关推荐
Java DB(英文全称data base,数据库)是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用...
根据提供的文件信息,可以看出这份文档主要与Sun Microsystems公司的一款产品有关,尽管标题提及了“javadb”,但在给出的部分内容中并未直接涉及Java DB的具体细节。不过,考虑到这份文档的背景以及描述中提到的...
JavaDB,也称为Derby,是Oracle公司提供的一款开源、轻量级的关系型数据库管理系统,它是Java平台上的一个重要组成部分,特别适合于嵌入式应用和小型项目。本指南将详细阐述如何安装JavaDB,以及如何进行基本的配置...
- 输入 JavaDB 根目录 (javadb) 的路径。 - 设置数据库位置,可以使用创建的 Home 目录或者保留默认设置。 - 单击“确定”。 - **启动服务器并创建数据库**: 1. **启动服务器**: - 在“服务”窗口中,右键...
JavaDB,全称为Apache Derby,是一款轻量级的关系型数据库管理系统,由Apache软件基金会开发并维护。它基于Java平台,完全兼容SQL标准,是Java应用程序的理想选择,特别是对于那些需要内嵌式数据库解决方案的开发者...
1.javaDB4o源代码(JavaDB4o.rar),里面包括了Db40的使用JavaBean和实例(原创)。 2.JavaDB4o.zip这个里面主要是有一个架要导入到1中的源码中,因为这是个外部架,是用来支持DB4o数据库的,所以必须要 3.db4o-8.0-...
JavaDB 数据库配置安装详解 JavaDB 是一个基于 Java 的关系数据库管理系统,由 Apache 软件基金会开发和维护。JavaDB 也被称为 Derby,是一个开源的关系数据库管理系统,支持标准的 SQL 语句,能够在 Java 应用程序...
JavaDB,全称为Apache Derby,是Java平台上的一个开源、免费的关系型数据库管理系统,由Apache软件基金会维护。它轻量级、嵌入式且完全符合SQL标准,是初学者和小型应用程序的理想选择。本示例将详细介绍如何使用...
JavaDB_Driver是一个关键的组件,它主要用于与JavaDB数据库进行交互。JavaDB,也称为Apache Derby,是一款轻量级、开源的关系型数据库管理系统(RDBMS),由Apache软件基金会维护。它完全遵循Java Database ...
JavaDB,全称为Apache Derby,是Java平台上的一个开源、免费的关系型数据库管理系统(RDBMS),它由Apache软件基金会维护。JavaDB是基于Java语言编写,因此它具有跨平台的特性,可以在任何支持Java的环境中运行。这...
JavaDB和MySQL是两种不同的关系型数据库管理系统(RDBMS),在软件开发中,尤其是在Java应用程序中,它们常被用于存储和管理数据。下面将详细解释这两个数据库系统以及它们在MyEclipse集成开发环境中的应用。 Java...
两个java程序,一个是以嵌入式访问javadb,一个以网络模式访问javadb。 两个程序均已实际调通并运行成功。 带有编译两个java程序的命令。 这个程序做了大多数数据库应用都可能会做的操作: 在 DBMS 中创建了一个名...
Java嵌入式数据库的驱动包,详见JDK1.6的说明文档
Java DB,全称为Derby,是Oracle公司提供的一款开源、轻量级的关系型数据库管理系统(RDBMS),它是Java平台上的一个嵌入式数据库。它完全由Java编写,因此可以无缝地集成到Java应用程序中,尤其适合于小型到中型的...
【ejb资料 javadb资料】 EJB(Enterprise JavaBeans)是Java EE平台中用于构建企业级应用的核心组件,它提供了一种规范化的、面向服务的架构来开发分布式、事务处理和安全的应用。EJB 3.0是其一个重要版本,引入了...
### Java DB 入门知识点概览 #### 一、Java DB与Derby的关系 Java DB是基于Java编程语言和SQL的一种关系型数据库管理系统。它实际上是由Apache Software Foundation(ASF)开源的关系型数据库项目——Derby发展而...
JavaDB2驱动JavaDB2驱动JavaDB2驱动JavaDB2驱动JavaDB2驱动JavaDB2驱动JavaDB2驱动JavaDB2驱动JavaDB2驱动JavaDB2驱动JavaDB2驱动JavaDB2驱动
《EQ.rar_EQ_javadb-2.2.tar_telframe:深入解析Java企业QQ系统与数据库集成技术》 在IT领域,开发高效、稳定的通信工具是至关重要的,尤其是在企业环境中。"EQ.rar_EQ_javadb-2.2.tar_telframe"这个文件组合揭示了...