上次我向大家介绍了sqlite的基本信息和使用过程,相信朋友们对sqlite已经有所了解了,那今天呢,我就和大家分享一下在Android中如何使用sqlite。
现在的主流移动设备像Android、iPhone等都使用sqlite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到sqlite来存储我们大量的数据,所以我们就需要掌握移动设备上的sqlite开发技巧。对于Android平台来说,系统内置了丰富的API来供开发人员操作sqlite,我们可以轻松的完成对数据的存取。
下面就向大家介绍一下sqlite常用的操作方法,为了方便,我将代码写在了Activity的onCreate中:
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- //打开或创建test.db数据库
- sqliteDatabasedb=openOrCreateDatabase("test.db",Context.MODE_PRIVATE,null);
- db.execsql("DROPTABLEIFEXISTSperson");//如果数据库中存在address_book表,就把它从数据库中drop掉。
- //创建person表
- db.execsql("CREATETABLEperson(_idINTEGERPRIMARYKEYAUTOINCREMENT,nameVARCHAR,ageSMALLINT)");
- Personperson=newPerson();
- person.name="john";
- person.age=30;
- //插入数据
- db.execsql("INSERTINTOpersonVALUES(NULL,?,?)",153); background-color:inherit; font-weight:bold">newObject[]{person.name,person.age});
- person.name="david";
- person.age=33;
- //ContentValues以键值对的形式存放数据
- ContentValuescv=newContentValues();
- cv.put("name",person.name);
- cv.put("age",person.age);
- //插入ContentValues中的数据
- db.insert("person",153); background-color:inherit; font-weight:bold">null,cv);
- cv=@H_404_206@ cv.put("age",35);
- //更新数据
- db.update("person",cv,"name=?",153); background-color:inherit; font-weight:bold">newString[]{"john"});
- Cursorc=db.rawQuery("SELECT*FROMpersonWHEREage>=?",153); background-color:inherit; font-weight:bold">newString[]{"33"});
- while(c.moveToNext()){
- int_id=c.getInt(c.getColumnIndex("_id"));
- Stringname=c.getString(c.getColumnIndex("name"));
- intage=c.getInt(c.getColumnIndex("age"));
- Log.i("db","_id=>"+_id+",name=>"+name+",age=>"+age);
- }
- c.close();
- //删除数据
- db.delete("person","age<?",153); background-color:inherit; font-weight:bold">newString[]{"35"});
- //关闭当前数据库
- db.close();
- //删除test.db数据库
- //deleteDatabase("test.db");
- }
上面的代码中基本上囊括了大部分的数据库操作;对于添加、更新和删除来说,我们都可以使用