blob: 63b95ee7197416e41f670b8f5bcb60539a4c48a1 [file] [log] [blame]
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;
}
}