java hsqldb_HSQLDB: java程序使用hsqldb 入门教程 java启动hsqldb
使用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相关推荐
- 美团小程序框架mpvue入门教程
美团小程序框架mpvue入门教程 自打写了 美团小程序框架mpvue蹲坑指南, 一发不可收拾,今天趁周末空闲,来写个mpvue(没朋友)的简单入门教程,本教程只针对新手,老鸟勿喷. 另外,我还专门为本 ...
- vue 美团框架_美团小程序框架mpvue入门教程
美团小程序框架mpvue入门教程 本教程只针对新手,老鸟勿喷. 另外,我还专门为本文做了一个简单的项目,如果懒得从头开始搭项目的童鞋,可以直接去我的 github上克隆到本地, 安装一下依赖,即可直接 ...
- 微信小程序使用WeUI入门教程
微信小程序使用WeUI入门教程 在学习微信小程序过程中,很多组件的样式需要自己调整,且很多不是我们想要的样子.所以找到了WeUI这样的扩展组件库,预览了组件库,真的非常nice! 但是找不到怎么去引用 ...
- Java程序入门教程 | Java
有一个朋友这样告诉我:Java太难了!上课老师不讲代码,我怎么学?! 我也发现了,以我们学校为例吧.很多Java教学者似乎不太愿意细嗦代码怎么写.(在大一已经学习过C语言的基础上,Java其实真的很简 ...
- java编程输出平行四边形_JAVA语言入门教程之打印图形实例——打印平行四边形...
本文主要向大家介绍了JAVA语言入门教程之打印图形实例--打印平行四边形,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 输出平行四边形: public class Parallelo ...
- java语言打印图形_JAVA语言入门教程之打印图形实例——打印矩形
本文主要向大家介绍了JAVA语言入门教程之打印图形实例--打印矩形,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 输出矩形: public class Rect { public s ...
- JAVA基础入门教程——Java介绍
1. Java简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称,目前由Oracle拥有. Java可运行于多个平台,如Win ...
- java编程计算器程序代码_34 个送给 Java 程序员的练手项目合集
人类一生中,99% 的技能都是靠实践学来的,编程更是如此. 在这一点上,编程和打篮球很像:你得亲自上场去打,才能学会篮球:同样,亲手敲下代码,才能真正学会「编程」.太多人看完一本书.几个 G 的视频后 ...
- java管理从程序员到CTO的Java技术路线图
查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧! 在技巧方面无论我们怎么学习,总感觉需要晋升自已不知道自己处于什么水平了.但如果有清晰的指示图 ...
- java编写应用程序_为您的Java应用程序编写数据驱动的测试
java编写应用程序 JUnit是一个功能非常强大的测试框架,它不仅为其用户提供了编写快速简便的测试的功能,而且还为用户提供了扩展它并使其按其期望的方式工作的机会. 在JUnit之上构建了许多框架,这 ...
最新文章
- 网络优化正在从经验型优化向大数据关联分析优化转变
- Android 实现布局动态加载
- [Google Guava] 9-I/O
- Flink的ProcessFunction API
- phpExcel使用方法二
- 8196国开计算机专业英语,电大计算机网络(本)学习周期01任务A_0002答案
- ORACLE数据库日志路径在哪里,查询方式
- 华为网络配置(ACL)
- qt界面中Pushbutton添加图片的三种显示效果
- win7设置自动开机时间_win7本地连接ip设置方法
- 融云助力中国企业打造海外云平台
- 'rm' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- mysql实习报告总结_MySQL数据库实训报告 实训心得
- Jenkins基础:Jenkinsfile使用实例:12:使用docker.build构建镜像
- android涟漪动画,如何添加涟漪效果并在android中的按钮上有自定义背景?
- 计算机主机拆转视频,新旧电脑数据转移(如何将旧电脑数据转移到新电脑)
- HTML写一个登录框样式
- xampp下载太慢了,这里有下载好的(mac)
- (翻译)峰终定律(Peak-end rule)
- android请求动态验证码,androidstudio实现图形验证码
热门文章
- psim扰动观察法编程c语言,基于PSIM的新型扰动观察法的MPPT仿真研究
- MAF:Mutation Annotation Format格式简介
- numpy_multiply函数
- 想做游戏测试,你一定要知道这几点!
- 网站商业计划书实例(商业网站策划书实例)
- 《麦肯锡方法》第10章 演示汇报-思维导图
- 风云武魂传说防御(四职业)
- Onenote实现OCR识别图片
- matlab cnn 实例,Deep Learning学习 之 CNN代码解析(MATLAB)(示例代码)
- VMware Workstation 12 Pro 安装mac系统中遇到的一些问题: