HSQLDB Demo

POM.xml

<?xml version="1.0" encoding="UTF-8"?><project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>hsqldemo</groupId>
  <artifactId>hsqldemo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <description></description>
  <dependencies>
    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.3</version>
    </dependency>
    <dependency>
      <groupId>hsqldb</groupId>
      <artifactId>hsqldb</artifactId>
      <version>1.8.0.7</version>
    </dependency>
  </dependencies>
</project>

 

 

demo.Client

 

package demo;

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

public class Client {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			// Connection c =
			// DriverManager.getConnection("jdbc:hsqldb:hsql://localhost:9002/test",
			// "sa", "");
			Connection c = DriverManager.getConnection(
					"jdbc:hsqldb:file:/opt/db/testdb", "sa", "");
			// Connection c =
			// DriverManager.getConnection("jdbc:hsqldb:mem:aname", "sa", "");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

}

 

 

 

HsqldbDemo.java

package demo;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/* 
 * Created on 2003-10-5 by Liudong 
 * /
import java.io.*;
import java.sql.*;
import org.hsqldb.*;
/** 
 * HSQLDB数据库引擎测试类 
 * @author Liudong 
 */

public class HsqldbDemo {
	// 数据库名称
	public final static String DATABASE_NAME = "hsqltest";
	// 数据库端口缺省为9001
	public final static int PORT = 9001;

	/**
	 * 测试程序入口
	 * 
	 * @param args
	 * @throws Exception
	 */

	public static void main(String[] args) throws Exception {
		String path = "data";
		File f = new File(path);
		if (!f.exists())
			f.mkdirs();
		HsqlDBManager hsqldb = new HsqlDBManager(path);
		hsqldb.setDatabaseName(DATABASE_NAME);
		hsqldb.setPort(PORT);
		new Thread(hsqldb).start();
		System.out.println("数据库服务已启动");

		// 开始测试
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		String sql = null;
		try {
			// 连接数据库
			Class.forName("org.hsqldb.jdbcDriver");
			conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost", "sa", "");
			// 创建表
			sql = "CREATE TABLE USER(ID INTEGER,NAME VARCHAR(50),MOBILE CHAR(12))";
			ps = conn.prepareStatement(sql);
			ps.executeUpdate();
			// 插入数据
			sql = "INSERT INTO user VALUES(?,?,?)";
			ps = conn.prepareStatement(sql);
			ps.setInt(1, 1);
			ps.setString(2, "Winter Lau");
			ps.setString(3, "13912345678");
			ps.executeUpdate();
			// 查询数据
			ps = conn.prepareStatement("SELECT * FROM user");
			rs = ps.executeQuery();
			while (rs.next()) {
				System.out.println("ID:" + rs.getInt("id"));
				System.out.println("NAME:" + rs.getString("name"));
				System.out.println("MOBILE:" + rs.getString("mobile"));
			}
		} finally {
			if (rs != null)
				rs.close();
			if (ps != null)
				ps.close();
			if (conn != null)
				conn.close();
		}

		// 退出程序
		System.exit(0);
	}
}

 

 

 

 

HsqldbManager.java

package demo;
import java.io.File;

import org.hsqldb.Server;


/**
 * 数据库服务线程
 * 
 * @author Liudong
 */
class HsqlDBManager implements Runnable {
	String dataPath;
	String databaseName = "test";
	int port = -1;

	/**
	 * 构造函数,需要一个数据路径的参数 该参数必须为物理存在的路径
	 * 
	 * @param dataPath
	 */

	public HsqlDBManager(String dataPath) {
		this.dataPath = dataPath;
		if (!this.dataPath.endsWith(File.separator))
			this.dataPath += File.separator;
		this.dataPath += databaseName;
	}

	public void run() {
		String[] args = null;
		if (port != -1)
			args = new String[] { "-database", dataPath, "-port", port + "" };
		else
			args = new String[] { "-database", dataPath };

		// 调用HSQLDB的服务入口
		Server.main(args);
	}

	public String getDatabaseName() {
		return databaseName;
	}

	public String getDataPath() {
		return dataPath;
	}

	public void setDatabaseName(String string) {
		databaseName = string;
	}

	public void setDataPath(String string) {
		dataPath = string;
	}

	public int getPort() {
		return port;
	}

	public void setPort(int i) {
		port = i;
	}
}

 

 

HsqldbDemo.java

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


public class HsqldbDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//1.start the server
		String path = "test";
		File f = new File(path);
		if(!f.exists()){
			f.mkdir();
		}
		
		HsqldbUtil hsqldbUtil = new HsqldbUtil(path);
		new Thread(hsqldbUtil).start();
		System.out.println("DATABASE STATED");
		
		//2.process data
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			Class.forName("org.hsqldb.jdbcDriver");
			conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/","sa","");
			
			stmt = conn.createStatement();
			
			//create table
			stmt.execute("CREATE TABLE testeste(ID INTEGER , NAME VARCHAR(32) , DATE VARCHAR(64))");
//			
			//insert data
			stmt.execute("INSERT INTO testeste VALUES (1,'ONE','2008-01')");
			stmt.execute("INSERT INTO testeste VALUES (2,'TWO','2008-02')");
			stmt.execute("INSERT INTO testeste VALUES (3,'THREE','2008-03')");
			stmt.execute("INSERT INTO testeste VALUES (4,'FOUR','2008-04')");
			
			//select data
			rs = stmt.executeQuery("select * from testeste");
			while(rs.next()){
				System.out.print(rs.getString(1) + "\t");
				System.out.print(rs.getString(2) + "\t");
				System.out.println(rs.getString(3));
			}
			
			System.exit(0);
			
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally{
			try {
				rs.close();
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		//
	}

}

 

 

 

HsqldbUtil.java

import java.io.File;

import org.apache.commons.lang.StringUtils;
import org.hsqldb.Server;

public class HsqldbUtil implements Runnable {

	private String dbName = "test";
	private String pathName = "test";
	private int port = -1;

	public HsqldbUtil(String pathName) {
		super();
		if (!StringUtils.isBlank(pathName)) {
			if (!pathName.endsWith(File.separator)) {
				pathName += File.separator;
			}
			this.pathName = pathName;
		} else {
			throw new RuntimeException("invalid pathName");
		}
	}

	// run
	public void run() {
		String[] args = null;
		if(port!=-1){
			args = new String[]{"database",this.getPathName(),"-port",this.getPort()+""};
		}else{
			args = new String[]{"database",this.getPathName()};
		}
		Server.main(args);
	}
	
	

	public String getDbName() {
		return dbName;
	}

	public void setDbName(String dbName) {
		this.dbName = dbName;
	}

	public String getPathName() {
		return pathName;
	}

	public void setPathName(String pathName) {
		this.pathName = pathName;
	}

	public int getPort() {
		return port;
	}

	public void setPort(int port) {
		this.port = port;
	}

}

 

你可能感兴趣的:(java,sql,SQL Server,mobile,HSQLDB)