`
ynial
  • 浏览: 227072 次
  • 来自: ...
社区版块
存档分类
最新评论

有关hsql处理文本数据库的笔记

    博客分类:
  • HSQL
阅读更多
fdsa
alert();



package com.nial.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBUtils {
	/** 数据库连接URL */
    private String url;
	/** 管理员名称 */
    private String user = "sa";
	/** 管理员密码 */
    private String password = "";
	/** 临时表名 */
    private String m_name = "cc";
    /** 建表语句 */
    private String m_columnSpec = "ID INTEGER PRIMARY KEY, caller INTEGER,called INTEGER, connected varchar(10) ,beginTime DATE,endTime DATE,inPhyChannel INTEGER,	outPhyChannel	INTEGER,callType INTEGER,outType INTEGER,timeLength  INTEGER";
	/** 字段分隔符 */
    private String m_separatorSpec = "\\t";
    /** 文本数据库链接 */
    private Connection connection;
	/** 数据文件的位置和名字 */
    private String filePathAndName;
    
    DBUtils(String filePathAndName) {
    	this.setFilePathAndName(filePathAndName);
    }  
    public String getFilePathAndName() {
		return filePathAndName;
	}
	public void setFilePathAndName(String filePathAndName) {
		this.filePathAndName = filePathAndName;
	}
	/**
     * 数据库启动
     * @throws SQLException 
     */
	protected void setUp() throws SQLException {
		url = "jdbc:hsqldb:file:test;sql.enforce_strict_size=true";
		try {
			Class.forName("org.hsqldb.jdbcDriver");
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println(this + ".setUp() error: " + e.getMessage());
		}
		connection = getConnection();
		createTable(connection);
	}
	/**
	 * 创建一个链接
	 * @return
	 * @throws SQLException
	 */
	private Connection getConnection() throws SQLException {
		return DriverManager.getConnection(url, user, password);
	}
	/**
	 * 创建一个临时表
	 * @param connection
	 * @param filePathAndName
	 * @throws SQLException
	 */
	private void createTable(Connection connection) throws SQLException {
		String createTable = "DROP TABLE \"" + m_name + "\" IF EXISTS;";
		createTable += "CREATE TEXT TABLE \"" + m_name + "\" ( " + m_columnSpec + " );";
		connection.createStatement().execute(createTable);
		String setTableSource = "SET TABLE \"" + m_name + "\" SOURCE\"" + getDataSourceSpec() + "\"";
		connection.createStatement().execute(setTableSource);
	}
	
	/**
	 * 临时表语句
	 * @param filePathAndName
	 * @return
	 */
	private String getDataSourceSpec() {   
											   //忽略第一行数据                                         					
		return filePathAndName + ";encoding=UTF-8;ignore_first=true;all_quoted=true;cache_scale=12;fs=" + m_separatorSpec;
	}
	
	public int getNumTimeLengthByDate(String caller, String startDate, String endDate) throws SQLException {
		String selectStmt = "SELECT sum(timeLength) as sumtimelength FROM \"" + m_name + "\" WHERE caller = '"+caller+"' and beginTime between '"+startDate+"' and '"+endDate+"'";
		Statement statement = connection.createStatement();
		ResultSet results = statement.executeQuery(selectStmt);
		int time = 0;
		while (results.next()) {
			time = results.getInt("sumtimelength");
		}
		return time;
	}
	
	public static void main(String[] args) throws SQLException {
		DBUtils utils = new DBUtils("D:\\cstpweb-workspace\\hqlTest\\cc.csv");	
		utils.setUp();
		int i = utils.getNumTimeLengthByDate("80703", "2007-12-01 00:00:00", "2007-12-31 00:00:00");
		System.out.println(i);
	}
}


测试数据

  • cc.zip (16.9 KB)
  • 描述: 测试数据
  • 下载次数: 31
分享到:
评论

相关推荐

    hsql-file数据库的java简单调用实现

    标题中的“hsql-file数据库的java简单调用实现”指的是使用Java编程语言与HSQLDB(HyperSQL数据库)进行交互,特别是在文件模式下操作数据库。HSQLDB是一种轻量级、开源的关系型数据库管理系统,它支持内存模式和...

    如何使用hsql数据库

    如何使用hsql数据库

    hsql数据库,体积最小的数据库,使用最方便的数据库

    hsql数据库,体积最小的数据库,使用最方便的数据库,不用安装,解压就能用,携带方便

    HSQL数据库下载

    HSQL数据库,全称为HyperSQL Database,是一款轻量级、高性能、完全开源的Java数据库管理系统。它被设计为一个嵌入式数据库,适用于各种应用程序,同时也支持客户端/服务器模式,可以作为独立的数据库服务器使用。...

    hsql数据库详细教程.pdf

    hsql 数据库详细教程 hsql 数据库是一款纯Java 编写的免费数据库,许可是BSD-style 的协议。如果你是使用 Java 编程的话,不凡考虑一下使用它,相对其他数据库来说,其体积小,仅563kb。仅一个 hsqldb.jar 文件就...

    嵌入式数据库hsql

    This package contains the latest release 1 of HSQLDB 1.7.3 HSQLDB is a relational database engine and a set of tools written in Java. ... Documentation and license information can be found in the /doc ...

    Hsqldb-java-connection:在Java编程中使用Hsql(内存数据库)数据库

    **HSQLDB(HyperSQL Database)**是一种轻量级、高速、开源的纯Java关系型数据库,特别适合于开发测试和原型设计。由于其内存模式,HSQLDB可以在不需安装任何服务器的情况下运行,直接在Java应用程序内部使用,极大...

    HSQL数据库2.2.5

    《HSQL数据库2.2.5:轻量级数据库解决方案详解》 HSQL数据库,全称为HyperSQL Database,是一款开源的、轻量级的Java数据库管理系统,尤其适用于内存模式、单机模式以及分布式多机环境。HSQLDB 2.2.5是其一个重要的...

    收集的全部HSQL DataBase资料(HSQL DataBase-关于Java 的纯数据库)

    下面将详细介绍HSQL Database在Java中的使用及相关知识点。 一、HSQL Database的特点 1. **轻量级**: HSQL Database占用资源少,启动快速,尤其适合于内存模式下的应用,如单元测试。 2. **完全SQL支持**: 支持SQL:...

    Spring数据库访问(HSQL)(三)

    在本篇博文中,我们将深入探讨Spring框架在数据库访问方面的应用,特别关注使用HSQL内存数据库的实践。HSQL数据库是一种轻量级的关系型数据库管理系统,适用于开发测试和快速原型设计,因为它不需要独立服务器进程,...

    Spring数据库访问(HSQL)(四)

    在本篇博文中,我们将深入探讨Spring框架在数据库访问方面的应用,特别关注使用HSQL内存数据库的实践。Spring是Java领域最广泛使用的轻量级框架之一,它为开发者提供了全面的事务管理、数据访问集成以及IoC...

    hsql可视化工具

    HSQL(HyperSQL)是一种轻量级、高性能的关系型数据库管理系统,它支持SQL标准并提供了多种运行模式,包括单用户模式、嵌入式模式和服务器模式。HSQL因其小巧、快速和易于使用而受到开发者们的青睐,尤其适用于开发...

    HSQL安装部署使用手册

    《HSQL数据库安装部署使用详解》 HSQL(HyperSQL)是一种轻量级、高性能的关系型数据库管理系统,常用于开发测试环境或者嵌入式应用。本文将详细介绍HSQL的安装、部署以及使用过程,帮助您顺利搭建并操作HSQL数据库...

    微型数据库HSQL

    HSQL是一个用java语言写的微型数据库,其大小在800k左右。麻雀虽小,但五脏俱全,数据库该有的功能他都有。同样是小型数据库,它要不ACCESS好的多,因为他有JDBC包,而且JDBC包和数据库实体是同一个文件,这就是说...

    java开发操作数据库架包

    本话题将深入探讨Java如何进行数据库操作,并以HSQL(HyperSQL)数据库为例,介绍相关的使用方法。 首先,Java通过JDBC(Java Database Connectivity)API与数据库进行通信。JDBC是Java标准的一部分,提供了统一的...

Global site tag (gtag.js) - Google Analytics