package SQLite; import java.sql.*; import java.util.Properties; public class JDBCDriver implements java.sql.Driver { public static final int MAJORVERSION = 1; public static final int MINORVERSION = 2; private static java.lang.reflect.Constructor makeConn = null; protected Connection conn; static { try { Class connClass = null; Class args[] = new Class[2]; args[0] = Class.forName("java.lang.String"); args[1] = args[0]; String jvers = java.lang.System.getProperty("java.version"); String cvers; if (jvers == null || jvers.startsWith("1.0")) { throw new java.lang.Exception("unsupported java version"); } else if (jvers.startsWith("1.1")) { cvers = "SQLite.JDBC1.JDBCConnection"; } else if (jvers.startsWith("1.2") || jvers.startsWith("1.3")) { cvers = "SQLite.JDBC2.JDBCConnection"; } else if (jvers.startsWith("1.4")) { cvers = "SQLite.JDBC2x.JDBCConnection"; } else if (jvers.startsWith("1.5")) { cvers = "SQLite.JDBC2y.JDBCConnection"; try { Class.forName(cvers); } catch (java.lang.Exception e) { cvers = "SQLite.JDBC2x.JDBCConnection"; } } else { cvers = "SQLite.JDBC2z.JDBCConnection"; try { Class.forName(cvers); } catch (java.lang.Exception e) { cvers = "SQLite.JDBC2y.JDBCConnection"; try { Class.forName(cvers); } catch (java.lang.Exception ee) { cvers = "SQLite.JDBC2x.JDBCConnection"; } } } connClass = Class.forName(cvers); makeConn = connClass.getConstructor(args); java.sql.DriverManager.registerDriver(new JDBCDriver()); } catch (java.lang.Exception e) { System.err.println(e); } } public JDBCDriver() { } public boolean acceptsURL(String url) throws SQLException { return url.startsWith("sqlite:/") || url.startsWith("jdbc:sqlite:/"); } public Connection connect(String url, Properties info) throws SQLException { if (!acceptsURL(url)) { return null; } Object args[] = new Object[2]; args[0] = url; if (info != null) { args[1] = info.getProperty("encoding"); } if (args[1] == null) { args[1] = java.lang.System.getProperty("SQLite.encoding"); } try { conn = (Connection) makeConn.newInstance(args); } catch (java.lang.reflect.InvocationTargetException ie) { throw new SQLException(ie.getTargetException().toString()); } catch (java.lang.Exception e) { throw new SQLException(e.toString()); } return conn; } public int getMajorVersion() { return MAJORVERSION; } public int getMinorVersion() { return MINORVERSION; } public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException { DriverPropertyInfo p[] = new DriverPropertyInfo[1]; DriverPropertyInfo pp = new DriverPropertyInfo("encoding", ""); p[0] = pp; return p; } public boolean jdbcCompliant() { return false; } }