`
haijun0314
  • 浏览: 8117 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hsqldb数据操作

阅读更多
hsqldb数据操作

1、底层操作

// 添加数据
public Object insertHSQLMap(Map map, String tableName,
    String primaryKeyName, String db_file_name_prefix ,String user,String password)
    throws DataAccessException {
   Object pkvalue = map.get(primaryKeyName);
   if (pkvalue == null)
    throw new InvalidDataAccessApiUsageException("PrimaryKey '"
      + primaryKeyName + "' cannot find in map");
   this.setPrimaryKey(map, tableName, primaryKeyName);
   String keyStr = "( ";
   String valueStr = "( ";
   String[] args = new String[map.size()];
   Iterator it = map.keySet().iterator();
   int j = 0;
   while (it.hasNext()) {
    String key = (String) it.next();

    keyStr = keyStr + key + ",";
    args[j]=String.valueOf(map.get(key));
    valueStr =valueStr +"'"+args[j] + "',";
    j++;
   }
   keyStr = keyStr.substring(0, keyStr.length() - 1) + " ) ";
   valueStr = valueStr.substring(0, valueStr.length() - 1) + " ) ";
   String insertSql = "insert into " + tableName + " " + keyStr
     + " values " + valueStr;
   System.out.println("insertSql: "+insertSql);
   Connection conn = null;
   Statement stmt = null;
   try {
    //取得数据库连接
    conn = this.getHSQLConnection(db_file_name_prefix, user, password);
    stmt = conn.createStatement();
    stmt.execute(insertSql);
    stmt.execute("SHUTDOWN");
    stmt.close();
    conn.close();
   } catch (Exception ex1) {
    ex1.printStackTrace();

   }

   return map.get(primaryKeyName);
}
/**
* 执行sql语句
*/
public void executeHSQLSql(String sql, String db_file_name_prefix,String user,String password)
    throws DataAccessException {

   Connection conn = null;
   Statement stmt = null;
   try {
    conn = this.getHSQLConnection(db_file_name_prefix, user, password);
    stmt = conn.createStatement();
    stmt.execute(sql);
    stmt.execute("SHUTDOWN");
  
    stmt.close();
    conn.close();
   } catch (Exception ex1) {
    ex1.printStackTrace();

   }

}
/**
* 查询数据
*/
public List queryHsqlList(String sql, String db_file_name_prefix,String user,String password)
    throws DataAccessException {

   Connection conn = null;
   Statement stmt = null;
   ResultSet rs=null;
   ResultSetMetaData rsmd=null;
   List       list=new ArrayList();
   try {
    conn = this.getHSQLConnection(db_file_name_prefix, user, password);
    stmt = conn.createStatement();
    rs=stmt.executeQuery(sql);
    rsmd=rs.getMetaData();
       int columnCount = rsmd.getColumnCount(); //列的总数
  
       while(rs.next())
          {
              Map m=new HashMap();
              for(int i=1;i<=columnCount;i++)
              {
                  m.put(rsmd.getColumnName(i), rs.getObject(i));
              }
              list.add(m);
          }
    stmt.execute("SHUTDOWN");
    rs.close();
    stmt.close();
    conn.close();
  
 
   } catch (Exception ex1) {
    ex1.printStackTrace();

   }
   return list;
}

/**
* 获取数据库连接
* db_file_name_prefix为连接字符串 例如:jdbc:hsqldb:file:d:hsqldb\\
* user:hsqldb数据库用户名称
* password:hsqldb数据库用户密码
*/
public Connection getHSQLConnection(String db_file_name_prefix,String user,String password)
{
   Connection conn = null;
   try {
    Class.forName("org.hsqldb.jdbcDriver");
    conn = DriverManager.getConnection(db_file_name_prefix, user, password);
   } catch (Exception ex1) {
    ex1.printStackTrace();
   }
   return conn;
 
}

2、业务层操作

/**
* 添加数据局到hsqldb数据
* List dataList,数据列表
* String tableName:表名称
* String pkName:主键
* String db_file_name_prefix:数据库连接字符串
*/

private void insertDataToHsqldb(List dataList,String tableName,String pkName,String db_file_name_prefix){
   for(int i=0;i<dataList.size()&&dataList.size()>0;i++){
    Map dataMap=(Map)dataList.get(i);
    MapUtil.filterMap(dataMap);
    expDataDAO.insertHSQLMap(dataMap, tableName, pkName, db_file_name_prefix);
   }
}

String db_file_name_prefix = "jdbc:hsqldb:file:d:hsqldb\\sample";

private String hsqlUser="sa";
private String hsqlPassword="sa";
private String pkname="ID";

private String tablename="JCD";
List list=jcdglService.getJcdInfoList();
insertDataToHsqldb(jcdinfolist, tablename, pkname, db_file_name_prefix);
分享到:
评论

相关推荐

    hsqldb的最新版本

    在使用HSQldb时,你需要按照官方文档的指示进行安装和配置,然后通过JDBC驱动连接到数据库,使用SQL语句进行数据操作。同时,了解如何配置数据库参数、管理用户权限以及进行数据库的备份和恢复,都是使用HSQldb时不...

    Oracle数据库移植到HsqlDB操作手册.docx

    Oracle数据库移植到HsqlDB是一项涉及多个步骤的技术工作,主要涉及到数据库系统间的差异处理、数据迁移、代码适配以及应用程序的调整。以下是整个过程的关键知识点: 1. **数据库系统差异**: - **启动与操作**:...

    HSQLDB

    - **嵌入式系统**:在资源有限的嵌入式设备上,HSQLDB作为内置数据库,能够提供高效的数据管理功能。 - **小型应用**:对于一些轻量级的应用,例如个人网站或小型项目,HSQLDB是理想的数据库选择。 **3. 安装与配置...

    hsqldb 2.25

    4. **文件数据库**:除了内存模式,HSQldb还可以将数据存储在磁盘文件中,适合于长期存储和较大规模的数据管理。 5. **嵌入式和服务器模式**:HSQldb支持在应用程序内部作为嵌入式数据库运行,也支持独立的服务器...

    hsqldb demo

    4. **事务处理**:演示如何使用HSQldb 的事务功能,确保数据操作的原子性。 5. **关闭数据库连接**:在完成数据库操作后,正确关闭数据库连接,释放资源。 6. **网络服务器模式**:如果示例包含网络服务器模式,将...

    HSQLDB快速连接数据库

    - **类型和算术操作**:介绍了HSQLDB支持的各种数据类型,包括整型、浮点型、二进制类型等,并解释了不同类型之间的转换规则和算术运算。 - **序列和标识**:说明了如何在HSQLDB中实现自动递增字段和序列生成器,这...

    hsqldb-2.2.8数据库

    HSQldb的一大特点是支持标准SQL语法,这使得开发人员可以使用熟悉的SQL命令进行数据操作,而无需学习新的查询语言。同时,HSQldb提供了丰富的JAVA接口,包括JDBC驱动程序,使得开发者能够轻松地在Java应用程序中集成...

    HSQLDB中文手册

    HSQLDB提供了一系列实用工具,如DatabaseManager、TransferTool、QueryTool和SqlTool,分别用于图形界面管理、数据迁移、查询执行和命令行操作,大大简化了数据库的日常管理和维护工作。 #### 七、版权与翻译声明 ...

    hsqldb管理工具

    而HSQldb的管理工具则为用户提供了便捷的操作界面,使得数据库的管理和维护变得更加直观和简单。 HSQldb客户端是HSQldb的重要组成部分,它提供了一系列工具,包括命令行接口和图形用户界面,用于创建、查询、更新和...

    hsqldb实例源代码

    总结来说,HSQldb实例源代码为我们提供了学习和实践HSQldb数据库操作的实例,涵盖了数据库的创建、数据操作以及查询等核心功能。通过研究这些代码,开发者可以快速掌握HSQldb的使用,并将其应用于自己的项目中,无论...

    hsqldb-lib.zip

    《HSQldb与Java数据库连接详解》 HSQldb(HyperSQL Database)是一款开源、轻量级、嵌入式的关系型数据库管理系统,广泛...理解这些额外库的作用和用法,将有助于我们更有效地利用HSQldb进行数据库操作和应用开发。

    HSQLDB数据库

    - **数据操作**: 使用标准的SQL语句进行INSERT、UPDATE、DELETE和SELECT操作。 - **备份与恢复**: 可以通过导出`.sql`文件进行数据备份,导入时执行SQL脚本恢复数据。 - **连接管理**: 数据库连接可以通过`jdbc:...

    HSQLDB 1.8.0

    HSQLDB 1.8.0是该数据库引擎的一个重要版本,它在功能、稳定性和性能上都有显著提升,为开发者提供了更强大的数据存储与处理能力。 一、HSQLDB的特点与优势 1. **开源免费**:HSQLDB遵循Apache Software License ...

    hsqldb包和使用说明

    HSQldb是一个开源的、轻量级的、嵌入式的Java数据库引擎,常用于开发测试环境和小型应用程序。...无论是在内存中临时存储数据,还是在磁盘上持久化数据,HSQldb都能提供高效且灵活的数据管理服务。

    HSQLDB中文帮助文档

    ### HSQLDB中文帮助文档知识点总结 #### 一、HSQLDB概述 - **定义**:HSQLDB(HyperSQL Database)是一款轻量级、开源的纯Java SQL数据库管理系统。它能够作为嵌入式数据库使用,也可以作为一个独立的服务器运行。 ...

    Hsqldb的缓存分析及调试步骤

    它的缓存机制和数据存储方式对于理解其性能和操作至关重要。以下是对HSQLDB的缓存分析和调试步骤的详细解释。 ### 一、实验环境 在进行HSQLDB的分析之前,我们需要一个合适的实验环境。这通常包括安装Java ...

    HSQLDB 中文文档

    - **数据库引擎**:HSQLDB支持不同类型的表、约束和索引,以及广泛的SQL支持和JDBC支持,确保了数据的一致性和完整性,同时也方便了开发者进行数据操作。 #### SQL问题 - **对SQL标准的支持**:HSQLDB遵循SQL标准...

    hsqldb-2.3.4

    1. **完全ACID事务**:HSQldb 2.3.4支持ACID(原子性、一致性、隔离性、持久性)事务,保证了数据的一致性和完整性。 2. **多用户模式**:HSQldb可以运行在单用户或多用户模式下,满足不同场景的需求。 3. **存储...

Global site tag (gtag.js) - Google Analytics