JDK6的新特性之八:嵌入式数据库Derby

简介: Derby并不是一个新的数据库产品,它是由IBM捐献给Apache的DB项目的一个纯Java数据库,JDK6.0里面带的这个Derby的版本是10.2.1.7,支持存储过程和触发器;有两种运行模式,一种是作为嵌入式数据库,另一种是作为网络数据库,前者的数据库服务器和客户端都在同一个JVM里面运行,后者允许数据库服务器端和客户端不在同一个JVM里面,而且允许这两者在不同的物理机器上.值得注意

Derby并不是一个新的数据库产品,它是由IBM捐献给Apache的DB项目的一个纯Java数据库,JDK6.0里面带的这个Derby的版本是10.2.1.7,支持存储过程和触发器;有两种运行模式,一种是作为嵌入式数据库,另一种是作为网络数据库,前者的数据库服务器和客户端都在同一个JVM里面运行,后者允许数据库服务器端和客户端不在同一个JVM里面,而且允许这两者在不同的物理机器上.值得注意的是JDK6里面的这个Derby支持JDK6的新特性JDBC 4.0规范(JSR 221),现在我们如果要练习JDBC的用法,没有必要单独装一个数据库产品了,直接用Derby就行.安装完JDK6.0后,Derby会被安装到<JDK6_HOME>/db下面,在<JDK6_HOME>/db/demo/programs下面还有一些示例程序,演示了如何启动,连接Derby数据库以及JDBC API的使用.下面分两种情况演示一下如何用代码操作Derby数据库,一种是嵌入式数据库,一种是网络数据库.

一.嵌入式数据库

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";//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 {
            
/*
             创建Derby网络服务器,默认端口是1527,也可以通过运行
             <Derby_Home> rameworksNetworkServer
相关文章
|
5月前
|
Java 关系型数据库 MySQL
JDK、Tomcat、MariaDB数据库和Profile多环境的配置与使用
以上就是JDK、Tomcat、MariaDB数据库和Profile多环境的配置与使用的基本步骤。这些步骤可能会因为你的具体需求和环境而有所不同,但是基本的思路是一样的。希望这些信息能够帮助你更好地理解和使用这些工具。
165 17
|
6月前
|
Java 测试技术 调度
JDK21有没有什么稳定、简单又强势的特性?
这篇文章主要介绍了Java虚拟线程的发展及其在AJDK中的实现和优化。
JDK21有没有什么稳定、简单又强势的特性?
|
9月前
|
容器
jdk8新特性-详情查看文档
jdk8新特性-详情查看文档
129 7
|
12月前
|
容器
jdk8新特性-详情查看文档
jdk8新特性-详情查看文档
109 3
|
11月前
|
存储 NoSQL API
.NET NoSQL 嵌入式数据库 LiteDB 使用教程
.NET NoSQL 嵌入式数据库 LiteDB 使用教程~
370 0
|
11月前
|
存储 安全 Java
JDK1.8 新的特性
JDK1.8 新的特性
108 0
|
Java API
JDK8到JDK25版本升级的新特性问题之使用Collectors.teeing()来计算一个列表中学生的平均分和总分如何操作
JDK8到JDK25版本升级的新特性问题之使用Collectors.teeing()来计算一个列表中学生的平均分和总分如何操作
|
Java API Apache
JDK8到JDK24版本升级的新特性问题之在Java中,HttpURLConnection有什么局限性,如何解决
JDK8到JDK24版本升级的新特性问题之在Java中,HttpURLConnection有什么局限性,如何解决
|
Oracle Java 关系型数据库
JDK8到JDK29版本升级的新特性问题之未来JDK的升级是否会成为必然趋势,如何理解
JDK8到JDK29版本升级的新特性问题之未来JDK的升级是否会成为必然趋势,如何理解
|
Oracle 安全 Java
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的

热门文章

最新文章