Android平台的SQLite驱动 SQLDroid
本文导语: 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...
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();
}