Search in sources :

Example 16 with User

use of org.h2.engine.User in project h2database by h2database.

the class WebApp method logout.

private String logout() {
    try {
        Connection conn = session.getConnection();
        session.setConnection(null);
        session.remove("conn");
        session.remove("result");
        session.remove("tables");
        session.remove("user");
        session.remove("tool");
        if (conn != null) {
            if (session.getShutdownServerOnDisconnect()) {
                server.shutdown();
            } else {
                conn.close();
            }
        }
    } catch (Exception e) {
        trace(e.toString());
    }
    return "index.do";
}
Also used : Connection(java.sql.Connection) DbException(org.h2.message.DbException) InvocationTargetException(java.lang.reflect.InvocationTargetException) SQLException(java.sql.SQLException) JdbcSQLException(org.h2.jdbc.JdbcSQLException)

Example 17 with User

use of org.h2.engine.User in project h2database by h2database.

the class WebServer method getConnection.

/**
 * Open a database connection.
 *
 * @param driver the driver class name
 * @param databaseUrl the database URL
 * @param user the user name
 * @param password the password
 * @return the database connection
 */
Connection getConnection(String driver, String databaseUrl, String user, String password) throws SQLException {
    driver = driver.trim();
    databaseUrl = databaseUrl.trim();
    org.h2.Driver.load();
    Properties p = new Properties();
    p.setProperty("user", user.trim());
    // do not trim the password, otherwise an
    // encrypted H2 database with empty user password doesn't work
    p.setProperty("password", password);
    if (databaseUrl.startsWith("jdbc:h2:")) {
        if (ifExists) {
            databaseUrl += ";IFEXISTS=TRUE";
        }
        // Properties
        return org.h2.Driver.load().connect(databaseUrl, p);
    }
    // }
    return JdbcUtils.getConnection(driver, databaseUrl, p);
}
Also used : SortedProperties(org.h2.util.SortedProperties) SysProperties(org.h2.engine.SysProperties) Properties(java.util.Properties)

Example 18 with User

use of org.h2.engine.User in project h2database by h2database.

the class TestTools method testBackupRestore.

private void testBackupRestore() throws SQLException {
    org.h2.Driver.load();
    String url = "jdbc:h2:" + getBaseDir() + "/testBackupRestore";
    String user = "sa", password = "abc";
    final String fileName = getBaseDir() + "/b2.zip";
    DeleteDbFiles.main("-dir", getBaseDir(), "-db", "testBackupRestore", "-quiet");
    Connection conn = getConnection(url, user, password);
    conn.createStatement().execute("CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR)");
    conn.createStatement().execute("INSERT INTO TEST VALUES(1, 'Hello')");
    conn.close();
    Backup.main("-file", fileName, "-dir", getBaseDir(), "-db", "testBackupRestore", "-quiet");
    DeleteDbFiles.main("-dir", getBaseDir(), "-db", "testBackupRestore", "-quiet");
    Restore.main("-file", fileName, "-dir", getBaseDir(), "-db", "testBackupRestore", "-quiet");
    conn = getConnection("jdbc:h2:" + getBaseDir() + "/testBackupRestore", "sa", "abc");
    ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM TEST");
    assertTrue(rs.next());
    assertFalse(rs.next());
    new AssertThrows(ErrorCode.CANNOT_CHANGE_SETTING_WHEN_OPEN_1) {

        @Override
        public void test() throws SQLException {
            // must fail when the database is in use
            Backup.main("-file", fileName, "-dir", getBaseDir(), "-db", "testBackupRestore");
        }
    };
    conn.close();
    DeleteDbFiles.main("-dir", getBaseDir(), "-db", "testBackupRestore", "-quiet");
}
Also used : AssertThrows(org.h2.test.utils.AssertThrows) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) SimpleResultSet(org.h2.tools.SimpleResultSet)

Example 19 with User

use of org.h2.engine.User in project h2database by h2database.

the class TestTools method testScriptRunscript.

private void testScriptRunscript() throws SQLException {
    org.h2.Driver.load();
    String url = getURL("jdbc:h2:" + getBaseDir() + "/testScriptRunscript", true);
    String user = "sa", password = "abc";
    String fileName = getBaseDir() + "/b2.sql";
    DeleteDbFiles.main("-dir", getBaseDir(), "-db", "testScriptRunscript", "-quiet");
    Connection conn = getConnection(url, user, password);
    conn.createStatement().execute("CREATE TABLE \u00f6()");
    conn.createStatement().execute("CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR)");
    conn.createStatement().execute("INSERT INTO TEST VALUES(1, 'Hello')");
    conn.close();
    Script.main("-url", url, "-user", user, "-password", password, "-script", fileName, "-options", "nodata", "compression", "lzf", "cipher", "aes", "password", "'123'", "charset", "'utf-8'");
    Script.main("-url", url, "-user", user, "-password", password, "-script", fileName + ".txt");
    DeleteDbFiles.main("-dir", getBaseDir(), "-db", "testScriptRunscript", "-quiet");
    RunScript.main("-url", url, "-user", user, "-password", password, "-script", fileName, "-options", "compression", "lzf", "cipher", "aes", "password", "'123'", "charset", "'utf-8'");
    conn = getConnection("jdbc:h2:" + getBaseDir() + "/testScriptRunscript", "sa", "abc");
    ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM TEST");
    assertFalse(rs.next());
    rs = conn.createStatement().executeQuery("SELECT * FROM \u00f6");
    assertFalse(rs.next());
    conn.close();
    DeleteDbFiles.main("-dir", getBaseDir(), "-db", "testScriptRunscript", "-quiet");
    RunScript tool = new RunScript();
    ByteArrayOutputStream buff = new ByteArrayOutputStream();
    tool.setOut(new PrintStream(buff));
    tool.runTool("-url", url, "-user", user, "-password", password, "-script", fileName + ".txt", "-showResults");
    assertContains(buff.toString(), "Hello");
    // test parsing of BLOCKSIZE option
    DeleteDbFiles.main("-dir", getBaseDir(), "-db", "testScriptRunscript", "-quiet");
    conn = getConnection(url, user, password);
    conn.createStatement().execute("CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR)");
    conn.close();
    Script.main("-url", url, "-user", user, "-password", password, "-script", fileName, "-options", "simple", "blocksize", "8192");
}
Also used : PrintStream(java.io.PrintStream) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) SimpleResultSet(org.h2.tools.SimpleResultSet) RunScript(org.h2.tools.RunScript) ByteArrayOutputStream(java.io.ByteArrayOutputStream)

Example 20 with User

use of org.h2.engine.User in project h2database by h2database.

the class TestTools method testScriptRunscriptLob.

private void testScriptRunscriptLob() throws Exception {
    org.h2.Driver.load();
    String url = getURL("jdbc:h2:" + getBaseDir() + "/testScriptRunscriptLob", true);
    String user = "sa", password = "abc";
    String fileName = getBaseDir() + "/b2.sql";
    Connection conn = getConnection(url, user, password);
    conn.createStatement().execute("CREATE TABLE TEST(ID INT PRIMARY KEY, BDATA BLOB, CDATA CLOB)");
    PreparedStatement prep = conn.prepareStatement("INSERT INTO TEST VALUES(?, ?, ?)");
    prep.setInt(1, 1);
    prep.setNull(2, Types.BLOB);
    prep.setNull(3, Types.CLOB);
    prep.execute();
    prep.setInt(1, 2);
    prep.setString(2, "face");
    prep.setString(3, "face");
    prep.execute();
    Random random = new Random(1);
    prep.setInt(1, 3);
    byte[] large = new byte[getSize(10 * 1024, 100 * 1024)];
    random.nextBytes(large);
    prep.setBytes(2, large);
    String largeText = new String(large, StandardCharsets.ISO_8859_1);
    prep.setString(3, largeText);
    prep.execute();
    for (int i = 0; i < 2; i++) {
        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM TEST ORDER BY ID");
        rs.next();
        assertEquals(1, rs.getInt(1));
        assertNull(rs.getString(2));
        assertNull(rs.getString(3));
        rs.next();
        assertEquals(2, rs.getInt(1));
        assertEquals("face", rs.getString(2));
        assertEquals("face", rs.getString(3));
        rs.next();
        assertEquals(3, rs.getInt(1));
        assertEquals(large, rs.getBytes(2));
        assertEquals(largeText, rs.getString(3));
        assertFalse(rs.next());
        conn.close();
        Script.main("-url", url, "-user", user, "-password", password, "-script", fileName);
        DeleteDbFiles.main("-dir", getBaseDir(), "-db", "testScriptRunscriptLob", "-quiet");
        RunScript.main("-url", url, "-user", user, "-password", password, "-script", fileName);
        conn = getConnection("jdbc:h2:" + getBaseDir() + "/testScriptRunscriptLob", "sa", "abc");
    }
    conn.close();
}
Also used : Random(java.util.Random) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) SimpleResultSet(org.h2.tools.SimpleResultSet) PreparedStatement(java.sql.PreparedStatement)

Aggregations

Connection (java.sql.Connection)36 SQLException (java.sql.SQLException)21 PreparedStatement (java.sql.PreparedStatement)17 Statement (java.sql.Statement)17 ResultSet (java.sql.ResultSet)16 Server (org.h2.tools.Server)15 DbException (org.h2.message.DbException)14 Column (org.h2.table.Column)12 ValueString (org.h2.value.ValueString)12 Properties (java.util.Properties)10 Database (org.h2.engine.Database)10 Schema (org.h2.schema.Schema)8 IOException (java.io.IOException)7 User (org.h2.engine.User)7 JdbcDataSource (org.h2.jdbcx.JdbcDataSource)7 SimpleResultSet (org.h2.tools.SimpleResultSet)7 Value (org.h2.value.Value)7 PrintStream (java.io.PrintStream)6 Timestamp (java.sql.Timestamp)6 GridH2Table (org.apache.ignite.internal.processors.query.h2.opt.GridH2Table)6