SQLDroid - Android平台的SQLite驱动


EPL
Android
Java

软件简介

SQLDroid 是 Android 平台上的 SQLite 数据库的 JDBC
驱动程序。

示例代码:

// your datapath is /data/data/$package/
// e.g. “/data/data/com.lemadi.robotanks.android”

// note that if you want to put it in $datapath/databases/
// the way Activity.openOrCreateDatabase does it,
// you have to create the databases subfolder if not already there

String url = “jdbc:sqldroid:” + getDataPath() + “/main.sqlite”;
Connection con = DriverManager.getConnection(url);

con.createStatement().execute(“CREATE TABLE MYTABLE (id INT, name
CHAR(200))”);

try {
con.createStatement().execute(“CREATE TABLE MYTABLE (id INT, name
CHAR(200))”);
con.createStatement().execute(“CREATE TABLE HIGH_SCORES (level VARCHAR, name
CHAR, time INT, timestamp INT)”);
} catch (SQLException e1) {
System.out.println(“error creating table: i guess they were already there”);
}

con.createStatement().execute(“INSERT INTO MYTABLE (id, name) VALUES (100,
‘klm’)”);

PreparedStatement ps = con.prepareStatement(“INSERT INTO MYTABLE (id, name)
VALUES (?, ?)”);

ps.setInt(1, (int)(Math.random() * 100));
ps.setString(2, “you’re ” + new Integer((int)(Math.random()*1000)).toString()
+ ” years old.”);
ps.executeUpdate();

ResultSet rs = con.createStatement().executeQuery(“SELECT id, name FROM
MYTABLE ORDER BY name”);

while(rs.next()) {
System.out.println(“test row: ” + rs.getInt(1) + ” = ” + rs.getString(2));
System.out.println(“test row string: ” + rs.getInt(“id”) + ” = ” +
rs.getString(“name”));
}

rs.close();

// this method demonstrates the limited Metadata functionality:

private static boolean tableExists(String tableName) {
ResultSet rs = con.getMetaData().getTables(null, null, tableName, null);
// rs.next() returns true is there is 1 or more rows
return rs.next();
}