Android中SQLite数据库的使用

来源:互联网 发布:禁止软件安装选项 编辑:程序博客网 时间:2024/05/18 14:27

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();    }}

布局文件代码

<RelativeLayout xmlns:android="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" >    <Button        android:id="@+id/insertbtn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="insert"         android:onClick="insertBtn"        />    <Button        android:id="@+id/findbtn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/insertbtn"        android:text="find"         android:onClick="findBtn"        />    <Button        android:id="@+id/updatebtn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/findbtn"        android:text="update"         android:onClick="updateBtn"        />     <Button        android:id="@+id/deletebtn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/updatebtn"        android:text="delete"         android:onClick="deleteBtn"        /></RelativeLayout>

OK搞定。

0 0
原创粉丝点击