package org.krakenapps.sqlengine; import java.sql.Connection; import java.sql.DriverManager; import java.sql.DriverPropertyInfo; import java.sql.SQLException; import java.util.Properties; import org.krakenapps.sqlengine.bdb.ConnectionImpl; import org.krakenapps.sqlengine.bdb.SqlEngine; public class Driver implements java.sql.Driver { private SqlEngine engine = new SqlEngine(); static { try { DriverManager.registerDriver(new Driver()); } catch (SQLException e) { e.printStackTrace(); } } @Override public Connection connect(String url, Properties info) throws SQLException { int p = url.indexOf("://"); if (p < 0) throw new SQLException("invalid jdbc connection string: " + url); String dbName = url.substring(p + 3).split("[/;]")[1]; return new ConnectionImpl(engine.createSession(dbName)); } @Override public boolean acceptsURL(String url) throws SQLException { return url.startsWith("jdbc:kraken-sql://"); } @Override public int getMajorVersion() { return 1; } @Override public int getMinorVersion() { return 0; } @Override public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException { return null; } @Override public boolean jdbcCompliant() { return false; } }