日期:2014-05-16  浏览次数:20459 次

hsqldb实例代码

package com.dmmap.adaptor.dao;

?

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.logging.Level;

import java.util.logging.Logger;

?

import org.hsqldb.server.Server;

?

?

/**

?* 便利单机法度应用HSQL的对象类,包含启动,封闭,连接。数据库默认不加密,用户为sa 密码空

?*/

public class HsqlUtil {

?

? ? public static final int PORT = 9002;

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

? ? public static final String DB_PATH = "./WebContent/database/";

? ? 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(HsqlUtil.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);

? ? ? ? ? ? ? ? System.out.println(DB_PATH+DB_NAME);

? ? ? ? ? ? }

? ? ? ? } catch (ClassNotFoundException ex) {

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

? ? ? ? } catch (SQLException ex) {

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

? ? ? ? }

? ? ? ? return conn;

? ? }

}

?

?

//public static List<SMS> getSMS()

//{

// List<SMS> list=new ArrayList<SMS>();

// HsqlUtil.mode = HsqlUtil.STAND_ALONE_MODE;

// ? ?HsqlUtil.startHSQL();

// ? ?Connection conn = HsqlUtil.getConnection();

// ? ?try {

// ? ? Statement statement =conn.createStatement();

// ? ? ? ?ResultSet rs=statement.executeQuery("select * from record");

// ? ? ? ?while(rs.next())

// ? ? ? ?{