使用 SQLiteDatabase 操作 SQLite 数据库 view plaincopy to clipboardprint? 1. /* 2. Android 提供了一个名为SQLiteDatabase 的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。对SQLiteDatabase 的学习,我们应该重点掌握 execSQL()和 rawQuery()方法。 execSQL()方法可以执行insert、delete、update 和 CREATE TABLE 之类有更改行为的SQL 语句; rawQuery()方法用于执行select 语句。 3. execSQL()方法的使用例子: 4. SQLiteDatabase db = ....; 5. db.execSQL("insert into person(name, age) values(' 测试数据', 4)"); 6. db.close(); 7. 执行上面 SQL 语句会往 person 表中添加进一条记录,在实际应用中, 语句中的“测试数据”这些参数值会由用户输入界面提供,如果把用户输入的内容原样组拼到上面的insert 语句, 当用户输入的内容含有单引号时,组拼出来的SQL 语句就会存在语法错误。要解决这个问题需要对单引号进行转义,也就是把单引号转换成两个单引号。有些时候用户往往还会输入像“ & ”这些特殊SQL 符号,为保证组拼好的SQL 语句语法正确,必须对SQL 语句中的这些特殊 SQL 符号都进行转义,显然,对每条 SQL 语句都做这样的处理工作是比较烦琐的。 SQLiteDatabase 类提供了一个重载后的execSQL(String sql, Object[] bindArgs)方法,使用这个方法可以解决前面提到的问题,因为这个方法支持使用占位符参数(?)。使用例子如下: 8. SQLiteDatabase db = ....; 9. db.execSQL("insert into person(name, age) values(?,?)", new Object[]{" 测试数据", 4}); 10. db.close(); 11. execSQL(String sql, Object[] bindArgs)方法的第一个参数为SQL语句,第二个参数为SQL语句中占位符参数的值,参数值在数组中的顺序要和占位符的位置对应。 12. */ view plaincopy to clipboardprint? 1. public class DatabaseHelper extends SQLiteOpenHelper { 2. //类没有实例化,是不能用作父类构造器的参数,必须声明为静态 3. private static final String name = "itcast"; //数据库名称 4. private static final int version = 1; //数据库版本 5. public DatabaseHelper(Context context) { 6. //第三个...