使用java写单机小程序或者测试项目的时候,使用hsqldb是一个不错的选择。

介绍可以看这里:

http://www.javaeye.com/topic/78887

http://hi.baidu.com/mum0532/blog/item/b08c0c6d88e0faf9431694e5.html

从官网下载的压缩包,解压后的demo目录中,可以运行runManagerSwing,打开可视化管理界面(但没有可视化创建表,创建字段的功能)

连接的时候,先选择server模式,然后在下图的红框处输入启动服务的端口和数据库名称。例如jdbc:hsqldb:hsql://localhost:9002/test

这里9002是我程序启动hsqldb的时候使用的端口,test是建立的数据库名称

HSQLDB创建数据库和基本的数据库访问:

http://hi.baidu.com/hivemind/blog/item/83873bdf36611c1462279825.html

HSLQDB的sql语法跟MySQL的略有不同,使得很郁闷啊~~开始我都不知道怎么初始化HSQLdb的数据

HSQLDB和Hibernate结合的一个小例子:

http://hi.baidu.com/hivemind/blog/item/2c77fb00830e5a16738b6506.html

我自己写的一个Java类:(只需要加入hsqldb.jar即可)

/*** 方便单机程序使用HSQL的工具类,包括启动,关闭,连接。数据库默认不加密,用户为sa,密码空

*@author郑高强*/

public class HSQL_Util {

public static final int PORT = 9002;

public static final String DB_NAME = "kenko"; //数据库文件名,同时也是本类中的数据库名 public static final String DB_PATH = "./db/";

public static final String USER_NAME = "sa";

public static final String PASSWORD = "";

public static final int SERVER_MODE = 0;

public static final int STAND_ALONE_MODE = 1; //In-Process public static int mode = SERVER_MODE; //记录当前用什么模式,开发时用Server,发布时用standalone

/*** 启动数据库服务*/

public static boolean startHSQL() {

if (mode == SERVER_MODE) {

Server server = new Server();//它可是hsqldb.jar里面的类啊。 server.setDatabaseName(0, DB_NAME);

server.setDatabasePath(0, DB_PATH + DB_NAME);

server.setPort(PORT);

server.setSilent(true);

server.start(); //自动多线程运行 System.out.println("hsqldb started...");

} else if (mode == STAND_ALONE_MODE) {

//standalone模式,打开连接就同时启动数据库,所以这里可以什么都不做 }

try {

Thread.sleep(800); //等待Server启动 } catch (InterruptedException e) {

}

return true;

}

/*** 关闭数据库服务*/

public static boolean stopHSQL() {

try {

Statement statement = getConnection().createStatement();

statement.executeUpdate("SHUTDOWN;");

return true;

} catch (SQLException ex) {

Logger.getLogger(HSQL_Util.class.getName()).log(Level.SEVERE, null, ex);

return false;

}

}

/*** 获取连接*/

public static Connection getConnection() {

Connection conn = null;

try {

Class.forName("org.hsqldb.jdbcDriver");

if (mode == SERVER_MODE) {

conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost:" + PORT + "/" + DB_NAME, USER_NAME, PASSWORD);

} else if (mode == STAND_ALONE_MODE) {

conn = DriverManager.getConnection("jdbc:hsqldb:file:" + DB_PATH + DB_NAME, USER_NAME, PASSWORD);

}

} catch (ClassNotFoundException ex) {

Logger.getLogger(HSQL_Util.class.getName()).log(Level.SEVERE, null, ex);

} catch (SQLException ex) {

Logger.getLogger(HSQL_Util.class.getName()).log(Level.SEVERE, null, ex);

}

return conn;

}

/*** 测试*/

public static void main(String[] args) {

HSQL_Util.mode = HSQL_Util.STAND_ALONE_MODE;

HSQL_Util.startHSQL();

Connection conn = HSQL_Util.getConnection();

try {

Statement statement = getConnection().createStatement();

statement.executeUpdate("create table customer(id integer not null primary key,firstname varchar,lastname varchar)");

for (int i = 10; i < 20; i++) {

statement.executeUpdate("insert into customer values(" + i + ",'liu','zhaoyang')");

}

statement.close();

} catch (SQLException ex) {

Logger.getLogger(HSQL_Util.class.getName()).log(Level.SEVERE, null, ex);

}

HSQL_Util.stopHSQL();

}

}

运行上述的类,在项目目录,会生成一个db文件夹,里边有数据库的一些基本文件:

HSQL速度测试:

String note = "XXXX"; //这里省略,实际是800个中文字 System.out.println(note.length());

HSQL_Util.mode = HSQL_Util.STAND_ALONE_MODE;

HSQL_Util.startHSQL();

Connection conn = HSQL_Util.getConnection();

try {

Statement statement = getConnection().createStatement();

statement.executeUpdate("create cached table customer(id integer not null primary key,firstname varchar,lastname varchar)");

for (int i = 1; i < 60000; i++) { //插入6万条数据用了43秒,生成262M的文件 statement.executeUpdate("insert into customer values(" + i + ",'" + note + "','zhaoyang')");

}

statement.executeQuery("select * from customer where id = 40"); //6万条数据用了9秒 statement.close();

} catch (SQLException ex) {

Logger.getLogger(HSQL_Util.class.getName()).log(Level.SEVERE, null, ex);

}

HSQL_Util.stopHSQL();

}

java hsqldb_HSQLDB: java程序使用hsqldb 入门教程 java启动hsqldb相关推荐

  1. 美团小程序框架mpvue入门教程

    美团小程序框架mpvue入门教程 自打写了 美团小程序框架mpvue蹲坑指南, 一发不可收拾,今天趁周末空闲,来写个mpvue(没朋友)的简单入门教程,本教程只针对新手,老鸟勿喷. 另外,我还专门为本 ...

  2. vue 美团框架_美团小程序框架mpvue入门教程

    美团小程序框架mpvue入门教程 本教程只针对新手,老鸟勿喷. 另外,我还专门为本文做了一个简单的项目,如果懒得从头开始搭项目的童鞋,可以直接去我的 github上克隆到本地, 安装一下依赖,即可直接 ...

  3. 微信小程序使用WeUI入门教程

    微信小程序使用WeUI入门教程 在学习微信小程序过程中,很多组件的样式需要自己调整,且很多不是我们想要的样子.所以找到了WeUI这样的扩展组件库,预览了组件库,真的非常nice! 但是找不到怎么去引用 ...

  4. Java程序入门教程 | Java

    有一个朋友这样告诉我:Java太难了!上课老师不讲代码,我怎么学?! 我也发现了,以我们学校为例吧.很多Java教学者似乎不太愿意细嗦代码怎么写.(在大一已经学习过C语言的基础上,Java其实真的很简 ...

  5. java编程输出平行四边形_JAVA语言入门教程之打印图形实例——打印平行四边形...

    本文主要向大家介绍了JAVA语言入门教程之打印图形实例--打印平行四边形,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 输出平行四边形: public class Parallelo ...

  6. java语言打印图形_JAVA语言入门教程之打印图形实例——打印矩形

    本文主要向大家介绍了JAVA语言入门教程之打印图形实例--打印矩形,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 输出矩形: public class Rect { public s ...

  7. JAVA基础入门教程——Java介绍

    1. Java简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称,目前由Oracle拥有. Java可运行于多个平台,如Win ...

  8. java编程计算器程序代码_34 个送给 Java 程序员的练手项目合集

    人类一生中,99% 的技能都是靠实践学来的,编程更是如此. 在这一点上,编程和打篮球很像:你得亲自上场去打,才能学会篮球:同样,亲手敲下代码,才能真正学会「编程」.太多人看完一本书.几个 G 的视频后 ...

  9. java管理从程序员到CTO的Java技术路线图

    查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧! 在技巧方面无论我们怎么学习,总感觉需要晋升自已不知道自己处于什么水平了.但如果有清晰的指示图 ...

  10. java编写应用程序_为您的Java应用程序编写数据驱动的测试

    java编写应用程序 JUnit是一个功能非常强大的测试框架,它不仅为其用户提供了编写快速简便的测试的功能,而且还为用户提供了扩展它并使其按其期望的方式工作的机会. 在JUnit之上构建了许多框架,这 ...

最新文章

  1. 网络优化正在从经验型优化向大数据关联分析优化转变
  2. Android 实现布局动态加载
  3. [Google Guava] 9-I/O
  4. Flink的ProcessFunction API
  5. phpExcel使用方法二
  6. 8196国开计算机专业英语,电大计算机网络(本)学习周期01任务A_0002答案
  7. ORACLE数据库日志路径在哪里,查询方式
  8. 华为网络配置(ACL)
  9. qt界面中Pushbutton添加图片的三种显示效果
  10. win7设置自动开机时间_win7本地连接ip设置方法
  11. 融云助力中国企业打造海外云平台
  12. 'rm' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  13. mysql实习报告总结_MySQL数据库实训报告 实训心得
  14. Jenkins基础:Jenkinsfile使用实例:12:使用docker.build构建镜像
  15. android涟漪动画,如何添加涟漪效果并在android中的按钮上有自定义背景?
  16. 计算机主机拆转视频,新旧电脑数据转移(如何将旧电脑数据转移到新电脑)
  17. HTML写一个登录框样式
  18. xampp下载太慢了,这里有下载好的(mac)
  19. (翻译)峰终定律(Peak-end rule)
  20. android请求动态验证码,androidstudio实现图形验证码

热门文章

  1. psim扰动观察法编程c语言,基于PSIM的新型扰动观察法的MPPT仿真研究
  2. MAF:Mutation Annotation Format格式简介
  3. numpy_multiply函数
  4. 想做游戏测试,你一定要知道这几点!
  5. 网站商业计划书实例(商业网站策划书实例)
  6. 《麦肯锡方法》第10章 演示汇报-思维导图
  7. 风云武魂传说防御(四职业)
  8. Onenote实现OCR识别图片
  9. matlab cnn 实例,Deep Learning学习 之 CNN代码解析(MATLAB)(示例代码)
  10. VMware Workstation 12 Pro 安装mac系统中遇到的一些问题: