开发android的SQLite数据库技术

来源:互联网 发布:mac virtualbox win7 编辑:程序博客网 时间:2024/06/18 18:28

android开发中进行数据库记录插入时,要声明一个ContentValues对象,

ContentValues values=new ContentValues();

该对象中存储的是键值对,这里需要注意的是,键是数据库表里的列名,值是希望插入的具体数值,如
values.put(“id”,1);
values.put(“name”,”tom”);

接下来有:

DataBaseHelper dbHelper=new DataBaseHelper(MainActivity.this,"pedometer.db");SQLiteDataBase db=dbHelper.getWritableDatabase();db.insert("t_user",null,values);

数据库表记录的更新操作:

ContentValues values=new ContentValues();values.put("name","lily");DataBaseHelper dbHelper=new DataBaseHelper(MainActivity.this,"pedometer.db");SQLiteDataBase db=dbHelper.getWritableDatabase();//第一个参数是要修改的表名//第二个参数是要修改的值//第三个参数相当于where字句,即根据条件修改//第四个参数是将值赋给占位符db.update("t_user",values,"id=?",new String[]{"1"});

查询操作:

DataBaseHelper dbHelper=new DataBaseHelper(MainActivity.this,"pedometer.db");SQLiteDataBase db=dbHelper.getReadableDatabase();Cursor cursor=db.query("t_user",new String[]{"id","name"},"id=?",new String[]{"1"});while(cusor.moveToNext()){String name=cusor.getString(cusor.getColumnIndex("name"));System.out.println("name is "+name);}

以上方法是直接调用SQLiteDataBase 对象的insert(),updat()和query()方法。这里显得有些麻烦,因为用这种方法需要用ContenValues对象。这里还有比较省事的方法,即直接调用SQLiteDataBase 对象的execSQl(“sqlStr”,new Objects[]{“”})方法。

针对以上增删改有:

db.execSQL("insert into t_user (id,name) values(?,?) ",new String[]{"1","name"});db.execSQL("update t_user set name=? where id=?",new String[]{"name","1"});db.execSQL("delete from t_user where id=?",new String[]{"1"});
List<String> all=new ArrayList<String>();Cursor result = db.rawQuery("select name from t_user where id=? ", new String[]{"1"});//采用循环的方式查询数据for(result.moveToFirst();!result.isAfterLast();result.moveToNext()  ){     all.add(result.getString(result.getColumnIndex("name")));}

最后重要的是,别忘记了关闭数据库连接 db.close();

0 0