HSQLDB 有多种启动方式,可以随java程序启动,在内存中执行。
1、新建一个eclipse工程,依赖以下jar
?
?
新建HsqldbServer类用来启动hsqldb
public class HsqldbServer { public static HsqldbServer hsqldbServer = new HsqldbServer(); private HsqldbServer(){ } public void startServer() { Server server = new Server(); server.setDatabaseName(0, "test"); server.setDatabasePath(0, "mem:test;sql.enforce_strict_size=true"); server.setLogWriter(null); server.setErrWriter(null); server.start(); } public static HsqldbServer getInstance(){ return hsqldbServer; } }
?新建DbManager类
public class DbManager { public static void initData(){ //创建数据库表和插入数据 String ddlStr ="create table student(id int,name varchar(100))"; String sqlStr ="insert into student values(1,'学生1')"; Connection connection = null; Statement stmt = null; try { Class.forName("org.hsqldb.jdbc.JDBCDriver"); connection = DriverManager.getConnection("jdbc:hsqldb:mem:test", "sa", ""); stmt = connection.createStatement(); stmt.addBatch(ddlStr); stmt.addBatch(sqlStr); ; stmt.executeBatch(); //TODO --在这里可以写查询数据库数据的代码,就可以查询出数据了。 ?} catch (Exception e) { e.printStackTrace(System.err); } finally { try { if (stmt != null) { stmt.close(); } } catch (SQLException e) {} } } /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { //启动hqldb数据库 HsqldbServer hsqldbServer = HsqldbServer.getInstance(); hsqldbServer.startServer(); DbManager.initData(); ?}?
运行main方法就行了。
?
附件是代码,查询数据是使用mybatis API,尝试了mybatis(非spring环境下)使用hqldb内存启动的数据库。
?
?