pratiktest
2/2/2017 - 8:46 PM

hsqldb.md

Setting up DAL to work with in-memory hsql db

1.Add reference to maven lib in pom.xml

    <properties>
        <hsqldb.version>2.3.2</hsqldb.version>
    </properties>
    <dependency>
      <groupId>org.hsqldb</groupId>
      <artifactId>hsqldb</artifactId>
      <version>${hsqldb.version}</version>
    </dependency>

When we run maven project a file with the test database will be created in root project pom in our case db is testdb

Download sql manager and put below

jdbc:hsqldb:file:D:\prkale\git\ecgs05\ecgs\testdb

#initialize hsql

@BeforeClass
    public final static void beforeClass() throws SQLException, IOException {

        try {
            Class.forName("org.hsqldb.jdbc.JDBCDriver");
        } catch (ClassNotFoundException e) {
            throw new RuntimeException("Cannot load hsql driver.", e);
        }

        conn = DriverManager.getConnection("jdbc:hsqldb:testdb", "SA", "SA");
        conn.setAutoCommit(true);

        ClassLoader cl = BaseTest.class.getClassLoader();

        String createStm = IOUtils.toString(cl.getResourceAsStream("db/create-db.sql"));
        String insertStm = IOUtils.toString(cl.getResourceAsStream("db/insert-data.sql"));

        conn.createStatement().executeUpdate(createStm);

        PreparedStatement psInsert = conn.prepareStatement(insertStm);
        int updated = psInsert.executeUpdate();
    }

    @AfterClass
    public final static void afterClass() throws SQLException {
        if (conn != null) {
            conn.close();
        }
    }


    //@PostConstruct
    public void getDbManager() {
        DatabaseManagerSwing.main(
                new String[]{"--url", "jdbc:hsqldb:testdb", "--user", "SA", "--password", "SA"});
    }