Android平台的SQLite驱动 SQLDroid
jopen
12年前
SQLDroid 是 Android 平台上的 SQLite 数据库 JDBC 驱动程序。可以让开发人员用熟悉的方式来操作SQLite 数据库和方便将其它项目,移植到Android平台中。
示例代码: // 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(); }