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时,你需要按照官方文档的指示进行安装和配置,然后通过JDBC驱动连接到数据库,使用SQL语句进行数据操作。同时,了解如何配置数据库参数、管理用户权限以及进行数据库的备份和恢复,都是使用HSQldb时不...
Oracle数据库移植到HsqlDB是一项涉及多个步骤的技术工作,主要涉及到数据库系统间的差异处理、数据迁移、代码适配以及应用程序的调整。以下是整个过程的关键知识点: 1. **数据库系统差异**: - **启动与操作**:...
- **嵌入式系统**:在资源有限的嵌入式设备上,HSQLDB作为内置数据库,能够提供高效的数据管理功能。 - **小型应用**:对于一些轻量级的应用,例如个人网站或小型项目,HSQLDB是理想的数据库选择。 **3. 安装与配置...
4. **文件数据库**:除了内存模式,HSQldb还可以将数据存储在磁盘文件中,适合于长期存储和较大规模的数据管理。 5. **嵌入式和服务器模式**:HSQldb支持在应用程序内部作为嵌入式数据库运行,也支持独立的服务器...
4. **事务处理**:演示如何使用HSQldb 的事务功能,确保数据操作的原子性。 5. **关闭数据库连接**:在完成数据库操作后,正确关闭数据库连接,释放资源。 6. **网络服务器模式**:如果示例包含网络服务器模式,将...
- **类型和算术操作**:介绍了HSQLDB支持的各种数据类型,包括整型、浮点型、二进制类型等,并解释了不同类型之间的转换规则和算术运算。 - **序列和标识**:说明了如何在HSQLDB中实现自动递增字段和序列生成器,这...
HSQLDB提供了一系列实用工具,如DatabaseManager、TransferTool、QueryTool和SqlTool,分别用于图形界面管理、数据迁移、查询执行和命令行操作,大大简化了数据库的日常管理和维护工作。 #### 七、版权与翻译声明 ...
而HSQldb的管理工具则为用户提供了便捷的操作界面,使得数据库的管理和维护变得更加直观和简单。 HSQldb客户端是HSQldb的重要组成部分,它提供了一系列工具,包括命令行接口和图形用户界面,用于创建、查询、更新和...
总结来说,HSQldb实例源代码为我们提供了学习和实践HSQldb数据库操作的实例,涵盖了数据库的创建、数据操作以及查询等核心功能。通过研究这些代码,开发者可以快速掌握HSQldb的使用,并将其应用于自己的项目中,无论...
HSQldb的一大特点是支持标准SQL语法,这使得开发人员可以使用熟悉的SQL命令进行数据操作,而无需学习新的查询语言。同时,HSQldb提供了丰富的JAVA接口,包括JDBC驱动程序,使得开发者能够轻松地在Java应用程序中集成...
《HSQldb与Java数据库连接详解》 HSQldb(HyperSQL Database)是一款开源、轻量级、嵌入式的关系型数据库管理系统,广泛...理解这些额外库的作用和用法,将有助于我们更有效地利用HSQldb进行数据库操作和应用开发。
- **数据操作**: 使用标准的SQL语句进行INSERT、UPDATE、DELETE和SELECT操作。 - **备份与恢复**: 可以通过导出`.sql`文件进行数据备份,导入时执行SQL脚本恢复数据。 - **连接管理**: 数据库连接可以通过`jdbc:...
HSQLDB 1.8.0是该数据库引擎的一个重要版本,它在功能、稳定性和性能上都有显著提升,为开发者提供了更强大的数据存储与处理能力。 一、HSQLDB的特点与优势 1. **开源免费**:HSQLDB遵循Apache Software License ...
HSQldb是一个开源的、轻量级的、嵌入式的Java数据库引擎,常用于开发测试环境和小型应用程序。...无论是在内存中临时存储数据,还是在磁盘上持久化数据,HSQldb都能提供高效且灵活的数据管理服务。
### HSQLDB中文帮助文档知识点总结 #### 一、HSQLDB概述 - **定义**:HSQLDB(HyperSQL Database)是一款轻量级、开源的纯Java SQL数据库管理系统。它能够作为嵌入式数据库使用,也可以作为一个独立的服务器运行。 ...
HSQLDB全面支持SQL标准,提供了丰富的数据类型和表结构定义选项,包括临时表、持久化表、LOB(大对象)数据、基本类型及操作、日期时间类型、区间类型、数组等。此外,还深入讲解了索引与查询优化技术,提高数据检索...
它的缓存机制和数据存储方式对于理解其性能和操作至关重要。以下是对HSQLDB的缓存分析和调试步骤的详细解释。 ### 一、实验环境 在进行HSQLDB的分析之前,我们需要一个合适的实验环境。这通常包括安装Java ...
- **数据库引擎**:HSQLDB支持不同类型的表、约束和索引,以及广泛的SQL支持和JDBC支持,确保了数据的一致性和完整性,同时也方便了开发者进行数据操作。 #### SQL问题 - **对SQL标准的支持**:HSQLDB遵循SQL标准...