Android操作Sqlite數據庫


首先要繼承抽象類:SQLiteOpenHelper

可以這樣寫:

package sRoger.pack;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

/**
 * sqlite 輔助類
 * @author sRoger
 *
 */
public class SqliteHelper extends SQLiteOpenHelper {

    /**
     * 版本號
     */
    private static final int VERSION = 1;
    
    private final String tag="SqliteHelper";
    
    /**
     * 構造函數
     * @param context
     * @param name
     * @param factory
     * @param version
     */
    public SqliteHelper(Context context, String name, CursorFactory factory, int version) {
        // 調用父類構造函數
        super(context, name, factory, version);
    }
    
    public SqliteHelper(Context context,String name,int version){
        this(context,name,null,version);
    }
    
    public SqliteHelper(Context context,String name){
        this(context,name,VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        Log.d(tag, "創建了一個Sqlite數據庫");
        db.execSQL("create table user" +
                    "(" +
                    "    id int," +
                    "    name varchar(20)" +
                    ")"
        );
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.d(tag, "Upgrade execute.");
    }

}

然后添加幾個按鈕,分別為:增、刪、改、查

代碼如下:

package sRoger.pack;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class LayoutSample14 extends Activity {
    
    private String tag="Sqlite3";
    private Button btnCreate = null;
    private Button btnUgrageDatabase = null;
    private Button btnInsert = null;
    private Button btnUpdateSql = null;
    private Button btnQuerySql = null;
    private Button btnDeleteSql=null;
    
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
       // 創建SQLite3數據庫
       btnCreate = (Button) findViewById(R.id.Create);
       btnCreate.setOnClickListener(new OnClickListener() {
        
            public void onClick(View v) {
                //這個構造函數中的兩個參數,第一個代表當前實例上下文,第二是Sqlite3 數據庫名稱
                SqliteHelper helper=new SqliteHelper(getApplicationContext(), "sRoger_Db");
                SQLiteDatabase dbase = helper.getReadableDatabase();
                Toast.makeText(getApplicationContext(), "createDatabase", Toast.LENGTH_SHORT).show();
                Log.d(tag, "Create Database");
            }
       });
       
       // 更新版本
       btnUgrageDatabase = (Button)findViewById(R.id.Upgrade);
       btnUgrageDatabase.setOnClickListener(new OnClickListener() {
            
               public void onClick(View v) {
                SqliteHelper helper=new SqliteHelper(getApplicationContext(), "sRoger_Db", 2);
                SQLiteDatabase dbase=helper.getReadableDatabase();
                Log.d(tag,"Upgrade Database");
            }
            
        });
       
       // 插入記錄
       btnInsert = (Button)findViewById(R.id.Insert);
       btnInsert.setOnClickListener(new OnClickListener() {
        
            public void onClick(View v) {
                ContentValues cv=new ContentValues();
                cv.put("Id", 1);
                cv.put("name", "sRoger");
                SqliteHelper helper=new SqliteHelper(getApplicationContext(), "sRoger_Db", 3);
                SQLiteDatabase dbase=helper.getWritableDatabase();
                //調用Insert方法,向SQLite3中插入記錄
                dbase.insert("user", null, cv);
                Log.d(tag,"insert data to Database");
            }
            
        });
       
       // 更新記錄
       btnUpdateSql=(Button)findViewById(R.id.updateSql);
       btnUpdateSql.setOnClickListener(new OnClickListener() {
        
            public void onClick(View v) {
                SqliteHelper helper=new SqliteHelper(getApplicationContext(), "sRoger_Db",4);
                SQLiteDatabase db=helper.getWritableDatabase();
                ContentValues cv=new ContentValues();
                cv.put("name", "baihongying");
                /*
                 *    第一個參數是:表名
                 *    第二個參數ContentValues對象
                 *    第三個參數where子句,里面的問題是一個占位符
                 *    第四個參數是占位符對應的值 
                 *    注意:有幾個占位符第四個參數里面就應該有幾個值
                 */
                db.update("user", cv, "id=?", new String[]{"1"});
                Log.d(tag, "update data to Database");
            }
            
        });
       
       //查詢記錄
       btnQuerySql = (Button)findViewById(R.id.querySql);
       btnQuerySql.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                SqliteHelper helper=new SqliteHelper(getApplicationContext(), "sRoger_Db", 5);
                SQLiteDatabase db=helper.getReadableDatabase();
                Cursor cur = db.query("user", new String[]{"id","name"}, "id=?", new String[]{"1"}, "id", null, null);
                while(cur.moveToNext()){
                    String name=cur.getString(cur.getColumnIndex("name"));
                    Log.d(tag, name);
                }
            }
        });
       
       //刪除操作
       btnDeleteSql = (Button)findViewById(R.id.deleteSql);
       btnDeleteSql.setOnClickListener(new OnClickListener() {
        
            public void onClick(View v) {
                SqliteHelper helper = new SqliteHelper(getApplicationContext(), "sRoger_Db", 6);
                SQLiteDatabase db=helper.getWritableDatabase();
                db.delete("user", "id=?", new String[]{"1"});
            }
        });
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM