我们已经介绍完《Android SQLite数据库应用技巧分享》了,今天我们就来介绍一下如何学习和使用SQLiteforAndroid。SQLite简介SQLite是一个轻量级的嵌入式关系数据库。已经在iPhone、Android等手机系统中使用。SQLite是可移植的、易于使用的、小巧的、高效的和可靠的。SQLite嵌入在使用它的应用程序中,它们共享同一个进程空间,而不是一个单独的进程。从外面看它不像一个RDBMS,但在进程内部它是一个完整的、独立的数据库引擎。在android中,当需要操作SQLite数据库时,需要获取一个SQLiteOpenHelper对象,而SQLiteOpenHelper是一个抽象类。用户需要继承这个类并实现这个类中的一些方法。1、继承SQLiteOpenHelper后,有以下两个方法:◆getReadableDatabase()创建或打开一个查询数据库◆getWritableDatabase()创建或打开一个可写数据库◆它们都返回SQLiteDatabase对象,用户通过获取到的进行后续操作SQLiteDatabase对象2.同时用户也可以重写以下回调函数,然后在对数据库进行操作时回调以下方法:onCreate(SQLiteDatabase):第一次创建数据库时会调用该方法.一般我们在这个方法面创建数据库。◆onUpgrade(SQLiteDatabase,int,int):当数据库需要修改时,Android系统会主动调用该方法。一般我们在该方法中删除数据库表并创建新的数据库表。当然,是否需要其他操作完全取决于应用程序的需要。◆onOpen(SQLiteDatabase):这个是打开数据库时的回调函数,一般不用。注意事项1.SQLiteOepnHelper的子类中必须有如下构造函数publicDatabaseHelper(Contextcontext,Stringname,CursorFactoryfactory,intversion){//父类中的构造函数必须通过super调用super(context,name,factory,version);为方便起见,您还可以使用两个或三个参数创建其他构造函数。2、函数publicvoidonCreate(SQLiteDatabasedb)在第一次调用getReadableDatabase()或getWritableDatabase()创建数据库时执行。实际上,这个方法只有在第一次获取SQLiteDatabase对象时才会被调用。.publicvoidonCreate(SQLiteDatabasedb){System.out.println("createaDatabase");//execSQL函数用于执行SQL语句db.execSQL("createtableuser(idint,namevarchar(20))");}在表中向数据库插入记录时,需要先将数据包含在一个ContentValues中,插入一个键值对到对象中,其中键是列名,值是你想要的值插入此列。该值必须与数据库中的数据类型一致。然后调用Databasehelper的getWritableDatabase方法获取可以写入的Databasehelper对象,然后向其中插入记录。注意调用DatabaseHelper对象的插入、更新或查询方法的参数传递。另外,query方法执行后返回一个Cursor游标,游标初始指向记录集合中行***上一行,所以需要先调用cursor.next()将游标移动到***在记录采集OK,然后重新获取数据。Java代码publicclassSQLiteActivityextendsActivity{/**在第一次创建activity时调用。*/privateButtoncreateButton;私人按钮插入按钮;私人按钮更新按钮;私人按钮更新记录按钮;私人按钮查询按钮;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);createButton=(Button)findViewById(R.id.createDatabase);updateButton=(Button)findViewById(R.id.updateDatabase);insertButton=(Button)findViewById(R.id.insert);updateRecordButton=(按钮)findViewById(R.id.update);queryButton=(按钮)findViewById(R.id.query);createButton.setOnClickListener(newCreateListener());updateButton.setOnClickListener(newUpdateListener());insertButton.setOnClickListener(newInsertListener());updateRecordButton.setOnClickListener(newUpdateRecordListener());queryButton.setOnClickListener(newQueryListener());}classCreateListenerimplementsOnClickListener{@OverridepublicvoidonClick(Viewv){//创建一个DatabaseHelper对象DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,"test_mars_db");//只有在调用了DatabaseHelper对象的getReadableDatabase()方法或者getWritableDatabase()方法之后才会创建,或者打开一个数据库SQLiteDatabasedb=dbHelper.getReadableDatabase();}}classUpdateListenerimplementsOnClickListener{@OverridepublicvoidonClick(Viewv){DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,"test_mars_db",2);SQLiteDatabasedb=dbHelper.getReadableDatabaseList();OverridepublicvoidonClick(Viewv){//生成一个ContentValues对象ContentValuesvalues=newContentValues();//我想在对象中插入一个键值对,其中key是列名,value是你要插入到这个列中的值。该值必须与数据库中的相同数据类型一致values.put("id",1);values.put("姓名","张三");DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,"test_mars_db",2);SQLiteDatabasedb=dbHelper.getWritableDatabase();//调用insert方法向数据库中插入数据db.insert("user",null,values);}}//更新操作相当于执行SQL语句中的更新语句//UPDATEtable_nameSETXXCOL=XXXWHEREXXXXCOL=XX...classUpdateRecordListenerimplementsOnClickListener{@OverridepublicvoidonClick(Viewarg0){//TODOAuto-generatedmethodstub//获取一个可写的SQLiteDatabase对象DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,"test_mars_db");SQLiteDatabasedb=dbHelper.getWritableDatabase();ContentValuesvalues=newContentValues();values.put("name","zhangsanfeng");//***第一个参数是要更新的表名//第二个参数是一个ContentValeus对象//第三个参数是where子句db.update("user",values,"id=?",newString[]{"1"});}}classQueryListenerimplementsOnClickListener{@OverridepublicvoidonClick(Viewv){System.out.println("aaa----------------");登录。d("myDebug","myFirstDebugMsg");DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,"test_mars_db");SQLiteDatabasedb=dbHelper.getReadableDatabase();铜rsorcursor=db.query("user",newString[]{"id","name"},"id=?",newString[]{"1"},null,null,null);while(cursor.moveToNext()){Stringname=cursor.getString(cursor.getColumnIndex("name"));System.out.println("查询--->"+name);}}}}【小编推荐】AndroidSQLite数据库应用技巧分享Android创建和使用数据库Widget开发心得详细指南解决跳页问题及SQLiteAndroid数据库相关代码Android几种常用保存数据方法解读分析
