SQLite操做數據庫的步驟


package com.example.dbdemo;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;

public class MyDatabaseHelper extends SQLiteOpenHelper {
	//建立自定義數據庫操做類的兩個成員變量,靜態常量字符串
	public static final String CREATE_BOOK="create table book(id integer primary key autoincrement,author text,price real,pages integer,name text)";
	public static final String CREATE_CATEGORY="create table category(id integer primary key autoincrement"+
					",category_name text,category_code integer)";
	private Context mContext; //上下文對象;
	
	public MyDatabaseHelper(Context context, String name,
			CursorFactory factory, int version) {
		super(context, name, factory, version);
		mContext=context;  //給當前上下文對象賦值
	}
	//1.建立數據庫的方法
	@Override
	public void onCreate(SQLiteDatabase db) {
		//使用db的execSQL方法,來執行建立數據表的方法
		db.execSQL(CREATE_BOOK);
		db.execSQL(CREATE_CATEGORY);
		Toast.makeText(mContext,"建立數據成功!",Toast.LENGTH_SHORT).show();
	}
	//更新數據的方法;更新數據內容的方法;由於已經有了數據庫,則不會再次建立數據庫 ;
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		db.execSQL("drop table if exists book"); //若是存在,則刪除!!!
		db.execSQL("drop table if exists category");
		onCreate(db);
	}

}

package com.example.dbdemo;

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

public class MainActivity extends Activity {
	//1.建立主活動類的成員變量是數據庫操做類
	private MyDatabaseHelper dbHelper;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//---------------------------在主活動的方法裏面來調用寫數據的方法;
		//如何讓調用onUpgrade()方法,使用版本號,即第四個參數
		dbHelper=new MyDatabaseHelper(MainActivity.this,"BookStore.db",null,2);
		Button btnDb=(Button)findViewById(R.id.btnDb);
		btnDb.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View arg0) {				
				dbHelper.getWritableDatabase();
			}
		});		
		//------------------爲插入數據,編寫相應的代碼-----------------
		//SQLiteDatabase對象,藉助這個對象,就能夠對數據進行CRUD操做!
		//SQLiteDatabase類提供了一個insert()方法,這個方法專門用於對數據進行添加數據。它接受三個參數,第一個參數是表名,咱們但願向哪一個表添加數據,這裏就傳入該表的名字
		//第二個參數用於在未指定給某些可爲空的列自動賦值NULL,通常咱們用不到這個功能;
		//第三個參數是一個ContentValues對象,它提供了一系列的put()方法重載,用於向ContentValues中添加數據,只須要將表中的每一個列名以及相應的待添加數據傳入便可
		Button btnAddData=(Button)findViewById(R.id.btnAddData);
		btnAddData.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				SQLiteDatabase db=dbHelper.getWritableDatabase(); //返回一個SQLiteDatabase對象,能夠對sqlite數據庫進行操做;
				ContentValues values=new ContentValues();
				//開始組裝第一條數據
				values.put("name", "魔獸");
				values.put("author", "張");
				values.put("pages", 454);
				values.put("price", 16.96);
				long i1=db.insert("Book", null,values); //插入第一條數據;
				values.clear();   //清楚內容值對象裏面的數據;
				values.put("name", "JQuery");
				values.put("author", "li.sir");
				values.put("pages", 510);
				values.put("price", 19.95);
				long i2=db.insert("Book",null,values);   //插入第二條數據;
				if(i1!=-1){
					Toast.makeText(MainActivity.this, "第一條數據插入成功", Toast.LENGTH_LONG).show();
				}
				if(i2!=-1){
					Toast.makeText(MainActivity.this, "第一條數據插入成功", Toast.LENGTH_LONG).show();
				}
			}
		});
		//針對數據進行更新;
		Button btnUpdateData=(Button)findViewById(R.id.btnUpData);
		btnUpdateData.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				SQLiteDatabase db=dbHelper.getWritableDatabase();  //得到SQLiteDatabase對象;
				ContentValues values=new ContentValues(); //得到內容值對象;
				values.put("price", 188);
				int i3=db.update("Book", values,"name=?",new String[]{"魔獸"});
				//update(表名 ,值對象,列名,肯定原來的哪一行數據
				if(i3!=0){
					Toast.makeText(MainActivity.this, "數據修改爲功", Toast.LENGTH_LONG).show();
				}
			}
		});
		//-------------------使用刪除按鈕,對數據刪除------------
		Button btnDeleteData=(Button)findViewById(R.id.btnDeleteData);
		btnDeleteData.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				SQLiteDatabase db=dbHelper.getWritableDatabase(); //得到SQLiteDatabase對象db
				int i4=db.delete("Book", "pages>?", new String[]{"500"});
				//delete(表名,哪一個參數,具體值)
				Toast.makeText(MainActivity.this, "數據刪除成功"+i4, Toast.LENGTH_LONG).show();
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}
相關文章
相關標籤/搜索