SQLite是轻量级的、嵌入式的、关系型数据库,SQLite可移植性好,很容易使用,很小,高效而且可靠。在Android中保存大量数据需要使用到SQLite数据库,下面就介绍一下SQLite常用操作方法的简单实例。
首先创建数据库和表代码如下:

import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class SQLite extends SQLiteOpenHelper {    public SQLite(Context context) {        //必须通过super调用父类当中的构造函数        super(context, "user.db", null, 1);        // TODO Auto-generated constructor stub    }    @Override    public void onCreate(SQLiteDatabase db) {        // TODO Auto-generated method stub        String str = "create table person(id integer primary key autoincrement,name varchar(20),password varchar(20))";        db.execSQL(str);    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        // TODO Auto-generated method stub    }}

然后实现数据的增删改查方法,实现方式有两种:
(1)使用SQL语句实现,代码如下:

import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.studyone.db.SQLite;public class PersonDao {    private SQLite sqlite;    //在构造放法中创建一个SQLite对象       public PersonDao( Context context){        sqlite = new SQLite(context);    }    public void insert(String name,String password){        SQLiteDatabase db = sqlite.getWritableDatabase();        //只有调用了DatabaseHelper对象的getReadableDatabase()方法,或者是getWritableDatabase()方法之后,才会创建或打开一个数据库                db.execSQL("insert into person (name,password) values (?,?)",new Object[]{name,password});        db.close();    }    public String find(String name){        String result="";        SQLiteDatabase db = sqlite.getReadableDatabase();        Cursor curse = db.rawQuery("select name,password from person where name=?", new String[]{name});        while( curse.moveToNext() ){            result += curse.getString(curse.getColumnIndex("name"));            result += curse.getString(curse.getColumnIndex("password"));        }        curse.close();        db.close();        return result;    }    public void update(String name ,String password){        SQLiteDatabase db = sqlite.getWritableDatabase();         //execSQL函数用于执行SQL语句          db.execSQL("update person set password = ? where name=?",new String[]{password,name});        db.close();    }    public void delete(String name){        SQLiteDatabase db = sqlite.getWritableDatabase();        db.execSQL("delete from person where name=?",new String[]{name});        db.close();    }}

(2)调用系统api实现,代码如下:

import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.studyone.db.SQLite;public class PersonDao {    private SQLite sqlite;    public PersonDao( Context context){        sqlite = new SQLite(context);    }    public void insert(String name,String password){        SQLiteDatabase db = sqlite.getWritableDatabase();        ContentValues values = new ContentValues();//生成ContentValues对象           values.put("name", name);        values.put("password", password);        db.insert("person", null, values);        db.close();    }    public String find(String name){        String result="";        SQLiteDatabase db = sqlite.getReadableDatabase();        Cursor curse = db.query("table", new String[]{"name","password"}, "name=?",  new String[]{name}, null, null, null);        while( curse.moveToNext() ){            result += curse.getString(curse.getColumnIndex("name"));            result += curse.getString(curse.getColumnIndex("password"));        }        curse.close();        db.close();        return result;    }    public void update(String name ,String password){        SQLiteDatabase db = sqlite.getWritableDatabase();        ContentValues values = new ContentValues();        values.put("password", password);        db.update("person", values, "name=?", new String[]{name});        db.close();    }    public void delete(String name){        SQLiteDatabase db = sqlite.getWritableDatabase();        db.delete("person", "name=?", new String[]{name});        db.close();    }}

然后就可以调用实现的方法操作数据了

import android.os.Bundle;import android.view.View;import android.widget.Toast;import android.app.Activity;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public void updateBtn(View v) throws Exception {        new PersonDao(this).update("554849416", "654321");        Toast.makeText(MainActivity.this,                "update ok", Toast.LENGTH_LONG)                .show();    }    public void findBtn(View v) throws Exception {        Toast.makeText(MainActivity.this,                new PersonDao(this).find("554849416"), Toast.LENGTH_LONG)                .show();    }    public void insertBtn(View v) throws Exception {        new PersonDao(this).insert("554849416", "123456");        Toast.makeText(MainActivity.this, "insert ok", Toast.LENGTH_LONG)                .show();    }    public void deleteBtn(View v) throws Exception {        new PersonDao(this).delete("554849416");        Toast.makeText(MainActivity.this, "delete ok", Toast.LENGTH_LONG)                .show();    }}

布局文件代码

"http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    

OK搞定。

更多相关文章

  1. 转:在Eclipse中查看Android SDK的源代码
  2. Cocos项目避免不断复制粘贴android lib库的方法
  3. Android去除系统自带动画的两种方法
  4. android studio中建立assets和jnilibs的方法
  5. 使用Java代码在应用层获取Android系统属性
  6. android查看SQLite数据库linux命令
  7. adb shell 命令查看android 应用程序 创建的 sqlite 数据库
  8. Android unspecified' depends on one or more Android Librarie

随机推荐

  1. 迅为电子推出四核ARM开发板,Android开发
  2. Android与H5前端数据交互实现
  3. Android权限之三共享UID和签名
  4. Android的MVVM模式优缺点
  5. AndroidStudio NDK的接入FFmpeg填坑记
  6. Android中ImageView 中xml属性值android:
  7. android studio 使用AIDL实现IPC
  8. Android日志通过logcat实时输出至文件
  9. Android中常用的五种布局方式:LinearLayo
  10. android遥控长按增加第二功能