一.编程启动数据库

package com.alibaba.hsql.hsqldemo;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import com.alibaba.hsql.hsqldemo.util.DbPropertyUtil;

public class DbManager {

static {

String driver = DbPropertyUtil.getDrvier();

try {

Class.forName(driver);

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

/**

* 关闭数据库

*/

public static void stopDb() {

final String dbalias = DbPropertyUtil.getDbName();

final String urlPrefix = DbPropertyUtil.getUrlPrefix();

final String url = urlPrefix + dbalias;

final String username = DbPropertyUtil.getUsername();

final String password = DbPropertyUtil.getPassword();

Connection conn = null;

Statement stmt = null;

try {

try {

conn = DriverManager.getConnection(url, username, password);

stmt = conn.createStatement();

stmt.execute("SHUTDOWN");

} finally {

if (null != stmt)

stmt.close();

if (null != conn)

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

/**

* 启动数据库

*/

public static void startDb(boolean dropOldTable) {

startServer();

createTable(dropOldTable);

}

private static void createTable(final boolean dropOldTable) {

//创建表

final String dbalias = DbPropertyUtil.getDbName();

final String urlPrefix = DbPropertyUtil.getUrlPrefix();

final String url = urlPrefix + dbalias;

final String username = DbPropertyUtil.getUsername();

final String password = DbPropertyUtil.getPassword();

final String tableName = DbPropertyUtil.getTableName();

Connection conn = null;

ResultSet rs = null;

String sql = DbPropertyUtil.getSql();

Statement stmt = null;

try {

try {

conn = DriverManager.getConnection(url, username, password);

rs = conn.getMetaData().getTables(null, null, tableName.toUpperCase(), null);

if (!rs.next()) {//不存在

stmt = conn.createStatement();

stmt.execute(sql);

}else{//存在

if(dropOldTable){

stmt = conn.createStatement();

stmt.execute("drop table  " + tableName);

stmt.execute(sql);

}

}

} finally {

if (null != rs)

rs.close();

if (null != stmt)

stmt.close();

if (null != conn)

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

/**

* 启动数据库服务器

*/

private static void startServer() {

final String database = "-database.0";

final String path = System.getProperty("user.home");

if (null == path) {

throw new RuntimeException("user home directory should not null");

}

final String fileName = path + DbPropertyUtil.getDbPath();

final String dbname = "-dbname.0";

final String dbalias = DbPropertyUtil.getDbName();

org.hsqldb.Server.main(new String[] { database, fileName, dbname, dbalias });

}

}

二.hsqldb相关知识:

1.支持Indentity主键;

2.支持分页:SELECT TOP 5 FROM .. ,    SELECT LIMIT 0 10 FROM ...;

3.支持JDBC 2.0

java hsqldb_Hsqldb入门相关推荐

  1. java从入门到精通_想要开始学java?你要的java从入门到精通布列如下!

    java从入门到精通,让我来告诉你! 毫无疑问,java是当下最火的编程语言之一.对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握java看似是一件十分困难的事.其实,只要掌握了科学的学习方法 ...

  2. C功底挑战Java菜鸟入门概念干货(一)

    一.认识Java 1.Java 程序比较特殊,它必须先经过编译,然后再利用解释的方式来运行.  2.Byte-codes 最大的好处是--可越平台运行,可让"一次编写,处处运行"成 ...

  3. java基础入门传智播客 源码_Java-_2020年版Java零基础视频教程(Java 0基础,Java初学入门)魔鬼讲师老杜出品...

    不会闲聊!!!不会扯淡!!!小UP只会分享与Java相关的学习资源 还记得那年带你Java入门的一声"吼"吗? B站目前播放量已经快到450多万播放量的Java零基础教程的创作者& ...

  4. 叮!您收到一份超值Java基础入门资料!

    摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家J ...

  5. java基础入门课后习题_《Java基础入门》课后习题及答案

    <Java基础入门>课后习题及答案Java基础入门,课后习题,答案 博学谷--让IT教学更简单,让IT学习更有效 <Java基础入门>课后习题 第1章Java开发入门 一.填空 ...

  6. Java从入门到精通08-二进制、位运算、移位运算

    Java从入门到精通08-二进制.位运算.移位运算 二进制(Binary)数用0和1两个数字及其组合来表示任何数.进位规则是"逢2进1",数字1在不同的位上代表不同的值,按从右到左 ...

  7. java技术入门培训_入门java怎么自学?推荐谁的课程?

    想要知道如何学习Java首先需要对她有一个大致的了解,Java是面向对象的编程语言,具有简单性.分布式.安全性.平台独立与可移植性.多线程.动态性等特点.现在多用于编写桌面应用程序.Web应用程序.分 ...

  8. 小白学编程“Java小白”入门解疑大全

    成功的人分几种,有一种人叫做关系户,他们渠道多,广织关系网,有一种叫做平台户,他们平台有多硬,他们就有多硬,但无论是关系户还是平台户,依靠的总是别人的手.别人的嘴巴.别人辛苦创立下来的资源,归根到底, ...

  9. B站百万播放量Java零基础教程视频(适合Java 0基础,Java初学入门),史上最细Java零基础教学视频

    是否还在为学习Java如何入门而烦恼? 是否还在为Java软件如何安装而烦恼? 是否还在找寻着适合零基础的Java视频教程? 动力节点教学总监老杜159集课堂实录Java零基础视频教程,从初学者角度出 ...

  10. Java RMI 入门

    Java RMI 入门 如何通信 实战 完整代码   Java RMI 指 JDK 内置的关于实现远程方法调用(Remote Method Invocation)的 API.这些 API 位于包 ja ...

最新文章

  1. OpenCV | OpenCV:sift,SURF 特征提取
  2. 测绘技术设计规定_1:2000地形图项目测绘(航测)技术设计书(文档可下载)
  3. C#之windows桌面软件第一课:倒时器软件
  4. 英语语法---分词短语详解
  5. mongoose Topology was destroyed 处理
  6. Cloudera Manager 术语和架构
  7. 10款 非常酷炫的网站首页焦点图 兼容ie浏览器
  8. 黑科技揭秘:百种异常随机注入,专有云为何稳如泰山 1
  9. windows设备管理器
  10. LeedCode知识点之位运算
  11. 【1131】C/C++经典程序训练1---最大公约数与最小公倍数
  12. 华南x79主板设置硬盘启动_硬盘无法识别怎么办?最全的解决办法
  13. 兄弟连关于PHP培训的声明
  14. 如何转换e-ac3|dts-hd|truehd|dsd|dff|dsf|wav|flac|ape|dts|mp3|wma|m4a|mkv|mp4|ncm|kgm|kgma|vpr|qmc等音视频格式?
  15. 单片机仿真软件proteus实验测试,基于单片机仿真软件proteus的流水灯实验报告.doc...
  16. Uniapp实现加入购物车抛物线效果
  17. PPT 插入无限循环滚动的图片
  18. php 计算壬子,壬子日是哪一天 壬子日怎么算
  19. 【爬虫实战】01利用python爬虫并进行数据分析(链家 爬虫)
  20. TSC Deluxe 300 pro 打印机驱动

热门文章

  1. 人体姿态识别OpenPose
  2. python爬虫入门实例
  3. JavaScript 中URL编码方式
  4. 【图像增强】基于matlab直方图均衡化图像增强【含Matlab源码 960期】
  5. flash实验中需添加的flash.c文件
  6. 为股票量化分析最新整理的免费股票数据API接口
  7. 教你同时分析DPD多个单号的物流信息
  8. 设计一个具有大纯时延时间的一阶惯性环节的计算机控制系统,计算机控制课程设计——大纯时延一阶惯性环节温度控制系统...
  9. 自动无刷电机和螺旋桨测试-如何测试无人机的动力系统?
  10. 小白攻略(三):数学建模论文的写作