`
jiasudu1649
  • 浏览: 723486 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hsqldb First JDBC Client Example

阅读更多
hsqldb自带的例子。看看就一切ok了,万事不求人啊。
There is a copy of Testdb.java in the directory src/org/hsqldb/sample of your HSQLDB distribution.

java 代码
 
  1.  1.  /* Copyright (c) 2001-2005, The HSQL Development Group  
  2.  2.  * All rights reserved.  
  3.  3.  *  
  4.  4.  * Redistribution and use in source and binary forms, with or without  
  5.  5.  * modification, are permitted provided that the following conditions are met:  
  6.  6.  *  
  7.  7.  * Redistributions of source code must retain the above copyright notice, this  
  8.  8.  * list of conditions and the following disclaimer.  
  9.  9.  *  
  10. 10.  * Redistributions in binary form must reproduce the above copyright notice,  
  11. 11.  * this list of conditions and the following disclaimer in the documentation  
  12. 12.  * and/or other materials provided with the distribution.  
  13. 13.  *  
  14. 14.  * Neither the name of the HSQL Development Group nor the names of its  
  15. 15.  * contributors may be used to endorse or promote products derived from this  
  16. 16.  * software without specific prior written permission.  
  17. 17.  *  
  18. 18.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  
  19. 19.  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  
  20. 20.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  
  21. 21.  * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,  
  22. 22.  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,  
  23. 23.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,  
  24. 24.  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  
  25. 25.  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND  
  26. 26.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT  
  27. 27.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS  
  28. 28.  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
  29. 29.  */   

ruby 代码
 
  1. package org.hsqldb.sample;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.ResultSet;  
  6. import java.sql.ResultSetMetaData;  
  7. import java.sql.SQLException;  
  8. import java.sql.Statement;  
  9.   
  10. /**  
  11.  * Title:        Testdb  
  12.  * Description:  simple hello world db example of a  
  13.  *               standalone persistent db application  
  14.  *  
  15.  *               every time it runs it adds four more rows to sample_table  
  16.  *               it does a query and prints the results to standard out  
  17.  *  
  18.  * Author: Karl Meissner karl@meissnersd.com  
  19.  */  
  20. public class Testdb {  
  21.   
  22.     Connection conn;                                                //our connnection to the db - presist for life of program  
  23.   
  24.     // we dont want this garbage collected until we are done  
  25.     public Testdb(String db_file_name_prefix) throws Exception {    // note more general exception  
  26.   
  27.         // Load the HSQL Database Engine JDBC driver  
  28.         // hsqldb.jar should be in the class path or made part of the current jar  
  29.         Class.forName("org.hsqldb.jdbcDriver");  
  30.   
  31.         // connect to the database.   This will load the db files and start the  
  32.         // database if it is not alread running.  
  33.         // db_file_name_prefix is used to open or create files that hold the state  
  34.         // of the db.  
  35.         // It can contain directory names relative to the  
  36.         // current working directory  
  37.         conn = DriverManager.getConnection("jdbc:hsqldb:"  
  38.                                            + db_file_name_prefix,    // filenames  
  39.                                            "sa",                     // username  
  40.                                            "");                      // password  
  41.     }  
  42.   
  43.     public void shutdown() throws SQLException {  
  44.   
  45.         Statement st = conn.createStatement();  
  46.   
  47.         // db writes out to files and performs clean shuts down  
  48.         // otherwise there will be an unclean shutdown  
  49.         // when program ends  
  50.         st.execute("SHUTDOWN");  
  51.         conn.close();    // if there are no other open connection  
  52.     }  
  53.   
  54. //use for SQL command SELECT  
  55.     public synchronized void query(String expression) throws SQLException {  
  56.   
  57.         Statement st = null;  
  58.         ResultSet rs = null;  
  59.   
  60.         st = conn.createStatement();         // statement objects can be reused with  
  61.   
  62.         // repeated calls to execute but we  
  63.         // choose to make a new one each time  
  64.         rs = st.executeQuery(expression);    // run the query  
  65.   
  66.         // do something with the result set.  
  67.         dump(rs);  
  68.         st.close();    // NOTE!! if you close a statement the associated ResultSet is  
  69.   
  70.         // closed too  
  71.         // so you should copy the contents to some other object.  
  72.         // the result set is invalidated also  if you recycle an Statement  
  73.         // and try to execute some other query before the result set has been  
  74.         // completely examined.  
  75.     }  
  76.   
  77. //use for SQL commands CREATE, DROP, INSERT and UPDATE  
  78.     public synchronized void update(String expression) throws SQLException {  
  79.   
  80.         Statement st = null;  
  81.   
  82.         st = conn.createStatement();    // statements  
  83.   
  84.         int i = st.executeUpdate(expression);    // run the query  
  85.   
  86.         if (i == -1) {  
  87.             System.out.println("db error : " + expression);  
  88.         }  
  89.   
  90.         st.close();  
  91.     }    // void update()  
  92.   
  93.     public static void dump(ResultSet rs) throws SQLException {  
  94.   
  95.         // the order of the rows in a cursor  
  96.         // are implementation dependent unless you use the SQL ORDER statement  
  97.         ResultSetMetaData meta   = rs.getMetaData();  
  98.         int               colmax = meta.getColumnCount();  
  99.         int               i;  
  100.         Object            o = null;  
  101.   
  102.         // the result set is a cursor into the data.  You can only  
  103.         // point to one row at a time  
  104.         // assume we are pointing to BEFORE the first row  
  105.         // rs.next() points to next row and returns true  
  106.         // or false if there is no next row, which breaks the loop  
  107.         for (; rs.next(); ) {  
  108.             for (i = 0; i < colmax; ++i) {  
  109.                 o = rs.getObject(i + 1);    // Is SQL the first column is indexed  
  110.   
  111.                 // with 1 not 0  
  112.                 System.out.print(o.toString() + " ");  
  113.             }  
  114.   
  115.             System.out.println(" ");  
  116.         }  
  117.     }                                       //void dump( ResultSet rs )  
  118.   
  119.     public static void main(String[] args) {  
  120.   
  121.         Testdb db = null;  
  122.   
  123.         try {  
  124.             db = new Testdb("db_file");  
  125.         } catch (Exception ex1) {  
  126.             ex1.printStackTrace();    // could not start db  
  127.   
  128.             return;                   // bye bye  
  129.         }  
  130.   
  131.         try {  
  132.   
  133.             //make an empty table  
  134.             //  
  135.             // by declaring the id column IDENTITY, the db will automatically  
  136.             // generate unique values for new rows- useful for row keys  
  137.             db.update(  
  138.                 "CREATE TABLE sample_table ( id INTEGER IDENTITY, str_col VARCHAR(256), num_col INTEGER)");  
  139.         } catch (SQLException ex2) {  
  140.   
  141.             //ignore  
  142.             //ex2.printStackTrace();  // second time we run program  
  143.             //  should throw execption since table  
  144.             // already there  
  145.             //  
  146.             // this will have no effect on the db  
  147.         }  
  148.   
  149.         try {  
  150.   
  151.             // add some rows - will create duplicates if run more then once  
  152.             // the id column is automatically generated  
  153.             db.update(  
  154.                 "INSERT INTO sample_table(str_col,num_col) VALUES('Ford', 100)");  
  155.             db.update(  
  156.                 "INSERT INTO sample_table(str_col,num_col) VALUES('Toyota', 200)");  
  157.             db.update(  
  158.                 "INSERT INTO sample_table(str_col,num_col) VALUES('Honda', 300)");  
  159.             db.update(  
  160.                 "INSERT INTO sample_table(str_col,num_col) VALUES('GM', 400)");  
  161.   
  162.             // do a query  
  163.             db.query("SELECT * FROM sample_table WHERE num_col &lt 250");  
  164.   
  165.             // at end of program  
  166.             db.shutdown();  
  167.         } catch (SQLException ex3) {  
  168.             ex3.printStackTrace();  
  169.         }  
  170.     }    // main()  
  171. }    // class Testdb  
分享到:
评论

相关推荐

    hsqldb jdbc driver

    hsqldb jdbc driver适合于hsqldb

    JDBC-HSQLDB.rar_hsqldb

    **JDBC-HSQLDB简介** JDBC(Java Database Connectivity)是Java编程语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。HSQLDB(HyperSQL Database)则是一个轻量级...

    HSQLDB.zip

    在本篇文章中,我们将深入探讨如何使用HSQLDB,并通过`HSQLDB_Client`类启动数据库,以及如何使用JDBC进行数据操作。 首先,HSQLDB的便捷之处在于其内置的服务器模式,允许开发者在应用程序中直接启用数据库服务。...

    Hsqldb.jar

    Class.forName("org.hsqldb.jdbc.JDBCDriver"); Connection conn = DriverManager.getConnection("jdbc:hsqldb:mem:test", "SA", ""); ``` 这里的`org.hsqldb.jdbc.JDBCDriver`是HSQLDB的JDBC驱动类,`jdbc:hsqldb:...

    hsqldb使用(转载)

    通过JDBC,我们可以使用`jdbc:hsqldb:hsql://localhost:9002/test`连接到服务器。 - **In-Process (Standalone)模式**:在这种模式下,数据库与应用程序在同一进程中运行,访问速度最快。但是,它仅限于当前进程,...

    <转>HSQLDB 安装与使用

    主要的类包括`org.hsqldb.Server`(服务器进程)、`org.hsqldb.jdbc.JDBCConnection`(JDBC连接)以及`org.hsqldb.Statement`(SQL语句执行)等。 ### 工具集成 HSQLDB常被用作开发和测试环境中的数据库,因为它...

    HSQLDB

    使用JDBC(Java Database Connectivity)可以连接到HSQLDB。以下是一个简单的示例: ```java Class.forName("org.hsqldb.jdbcDriver"); Connection conn = DriverManager.getConnection("jdbc:hsqldb:hsql://...

    HSQL JDBC操作

    标题中的“HSQL JDBC操作”指的是使用Java的JDBC(Java Database Connectivity)接口与HSQLDB(HyperSQL数据库)进行交互。HSQLDB是一个轻量级、开源的关系型数据库管理系统,广泛用于测试和开发环境中,因为它启动...

    hsqldb实例源代码

    1. **加载JDBC驱动**:在Java程序中,我们需要通过`Class.forName()`方法加载HSQldb的JDBC驱动。 2. **建立连接**:使用`DriverManager.getConnection()`方法,指定数据库URL,通常以`jdbc:hsqldb:`开头,可以是内存...

    hsqldb-2.5.0.zip

    try (JDBCConnection conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mydb", "sa", "")) { // 执行SQL操作... } catch (SQLException e) { e.printStackTrace(); } } } ``` 三、HSQDDL的...

    hsqldb-2.2.8数据库

    在使用HSQldb-2.2.8时,开发者通常会通过下载解压后的文件,找到对应的JDBC驱动(通常为`hsqldb.jar`),将其添加到项目的类路径中,然后通过JDBC API连接到数据库。HSQldb的配置文件(如`hsqldb.properties`)可以...

    hsqldb整合hibernate

    &lt;property name="hibernate.connection.driver_class"&gt;org.hsqldb.jdbc.JDBCDriver &lt;property name="hibernate.connection.url"&gt;jdbc:hsqldb:mem:testdb &lt;property name="hibernate.connection.username"&gt;sa ...

    HSQLDB安装与使用-转自http://www.cnblogs.com/wllyy189/archive/2008/11/15/1334002.html

    1. **连接数据库**: 使用JDBC驱动程序连接到HSQLDB服务器。例如: ```java Class.forName("org.hsqldb.jdbcDriver"); Connection conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mydb", "sa...

    hsqldb-lib.zip

    1. JDBC驱动:HSQldb可能需要其他数据库系统的JDBC驱动,以便进行数据迁移、备份或同步。例如,如果你需要将HSQldb的数据导入导出到MySQL或Oracle,那么对应的JDBC驱动是必不可少的。 2. 兼容库:有时,为了兼容...

    开源数据库软件hsqldb

    2. **连接数据库**:使用JDBC驱动进行连接,如`jdbc:hsqldb:hsql://localhost/test`,其中`test`是数据库名。 3. **创建表**:通过SQL语句`CREATE TABLE`定义表结构,如`CREATE TABLE Users (id INT PRIMARY KEY, ...

    hsqldb 2.25

    7. **网络协议支持**:通过JDBC(Java Database Connectivity)接口与应用程序交互,并支持TCP/IP网络通信,允许远程连接。 **HSQldb与JDK版本匹配的重要性:** 不同版本的HSQldb与特定的JDK版本匹配,是因为编译时...

    hsqldb快速入门

    HSQldb自带了`DatabaseManagerSwing`和`DatabaseManager`两个数据库管理工具,它们通过JDBC连接到HSQldb,方便进行数据库管理和查询操作。 **数据库关闭** 在任何模式下,可以使用SQL语句`SHUTDOWN`或`SHUTDOWN ...

    HSQLDB快速连接数据库

    - **数据库引擎**:介绍HSQLDB中可用的不同表类型(如临时表、持久化表)、约束和索引机制、SQL支持情况及JDBC接口的使用。 #### 四、SQL问题详解 - **对SQL标准的支持**:HSQLDB遵循并扩展了SQL-92标准,支持大...

Global site tag (gtag.js) - Google Analytics