android數據庫的簡單例子

下面代碼是簡單的數據庫創建:

package com.example.sqllite4;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MyOpenHelper extends SQLiteOpenHelper { 
     //數據名稱, 
 private static final String DBNAME = "UserDataBase"; 
 // 數據庫版本 
 private static final int version = 1; 
 // 構造方法參數, 
 public MyOpenHelper(Context context) { 
   super(context, DBNAME, null, version); 
 } 
 // 數據庫創建表的名子。 
 @Override 
 public void onCreate(SQLiteDatabase db) { 
   db.execSQL("CREATE TABLE TestUsers (id integer primary key autoincrement,name varchar(50),sex varchar(50))"); 
 } 
 // 更新方法 
 @Override 
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
   db.execSQL("EROP TABLE IF EXISTS TestUsers"); 
   onCreate(db); 
 } 



 } 

下面是增刪查改的Activity

package com.example.sqllite4;

import android.app.Activity;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.*;

public class SQLiteTest4 extends Activity {
    Button btnInsert;
    Button btnDelete;
    Button btnUpdate;
    Button btnSelect;
    EditText etName;
    EditText etSex;
    TextView tvShowContent;
    MyOpenHelper OpenHelper;
    SQLiteDatabase db =null;

    View.OnClickListener btnInsertListener =new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            InsertTb();
        }
    };
    View.OnClickListener btnDeleteListener =new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            DeleteTb();
        }
    };
    View.OnClickListener btnUpdateListener =new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            UpdateTb();
        }
    };
    View.OnClickListener btnSelectListener =new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Select();
        }
    };
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        OpenHelper =new MyOpenHelper(this);

        btnInsert = (Button) findViewById(R.id.main_btn_insert);

        btnDelete = (Button) findViewById(R.id.main_btn_delete);

        btnUpdate = (Button) findViewById(R.id.main_btn_update);

        btnSelect = (Button) findViewById(R.id.main_btn_select);

        tvShowContent = (TextView) findViewById(R.id.main_tv_showContent);

        etName = (EditText) findViewById(R.id.main_et_name);

        etSex = (EditText) findViewById(R.id.main_et_sex);

        btnInsert.setOnClickListener(btnInsertListener);
        btnDelete.setOnClickListener(btnDeleteListener);
        btnUpdate.setOnClickListener(btnUpdateListener);
        btnSelect.setOnClickListener(btnSelectListener);
    }
    /**
     * 插入數據
     */
    public void InsertTb(){
     //聲明一個int型變量賦值爲-1
        int flag =-1;
       //創建或打開一個數據庫
        db = OpenHelper.getWritableDatabase();
        //獲取寫入到EditText的姓名
        String strName = etName.getText().toString();
        //獲取寫入到EditText的性別
        String strSex = etSex.getText().toString();
        //寫數據庫的插入語句並執行sql語句,插入成功給予提示,失敗也同樣給予提示
        String sql ="insert into TestUsers (name,sex) values ('"+strName+"','"+strSex+"')";
        try {
            db.execSQL(sql);

        } catch (SQLException e) {
            Log.i("err", "insert failed");
            flag =0;
            Toast.makeText(SQLiteTest4.this, "插入失敗!", Toast.LENGTH_SHORT).show();
        }
        db.close();
        if (flag ==-1){
            Toast.makeText(SQLiteTest4.this, "插入成功!", Toast.LENGTH_SHORT).show();
        }

    }
    /**
     * 刪除表中的數據
     */
    public void DeleteTb(){
     //聲明一個int型變量賦值爲-1
        int flag =-1;
      //創建或打開一個數據庫
        db = OpenHelper.getWritableDatabase();
        //刪除TestUsers表中id爲1的數據並執行SQL,刪除成功給予提示,刪除失敗也同樣給予提示
        String sql ="delete from TestUsers where id=1";
        try {
            db.execSQL(sql);
        } catch (SQLException e) {
            Log.i("err", "delete failed");
            flag =0;
            Toast.makeText(SQLiteTest4.this, "刪除失敗!", Toast.LENGTH_SHORT).show();
        }
        db.close();
        if (flag ==-1){
            Toast.makeText(SQLiteTest4.this, "刪除成功!", Toast.LENGTH_SHORT).show();
        }
    }

    public void UpdateTb() {
     //聲明一個int型變量賦值爲-1
        int flag =-1;
      //創建或打開一個數據庫
        db = OpenHelper.getWritableDatabase();
      //獲取寫入到EditText的姓名
        String Name = etName.getText().toString();  
        //根據姓名更新TestUsers表中的姓名與性別並執行SQL,更新成功給予提示,刪除失敗也同樣給予提示
        String sql ="Update TestUsers set name='abc',sex='men' where name = '"+Name+"'";
        try {
            db.execSQL(sql);
        } catch (SQLException e) {
            Log.i("err", "update failed");
            flag =0;
            Toast.makeText(SQLiteTest4.this, "更新失敗!", Toast.LENGTH_SHORT).show();
        }
        db.close();
        if (flag ==-1){
            Toast.makeText(SQLiteTest4.this, "更新成功!", Toast.LENGTH_SHORT).show();
        }
    }

    //查詢所有
    public void Select(){
     //打開或者創建數據庫
        db = OpenHelper.getReadableDatabase();
         //查詢所有的姓名與性別返回的值用遊標保存
        Cursor cursor=db.query("TestUsers", new String[]{"name","sex"}, null,null, null, null, null);
        //得到總條數
        int count = cursor.getCount();
        //聲明兩個String數組來保存性別與性別
        String [] Name =new String[count];
        String [] Sex =new String[count];
        //聲明一個初始變量i爲0
        int i =0;
        //當有數據的時候獲取到name列與sex列的總數,從遊標第一個到最後一個進行移動獲取數據
        if (cursor.getCount() >0){
         int nameIndex = cursor.getColumnIndex("name");
         int sexIndex = cursor.getColumnIndex("sex");
            for(cursor.moveToFirst();!(cursor.isAfterLast());cursor.moveToNext()){
                Name[i] = cursor.getString(nameIndex);
                Sex[i]=cursor.getString(sexIndex);
                i++;
            }
        }
        //通過另一個變量j對上面得到的兩個數組進行分別的遍歷
        for(int j =0; j < count; j++){
            tvShowContent.append(Name[j]);
            tvShowContent.append(" : ");
            tvShowContent.append(Sex[j]);
            tvShowContent.append("\n");
        }

    }

 

}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章