標籤:
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.建立資料庫的方法@Overridepublic void onCreate(SQLiteDatabase db) {//使用db的execSQL方法,來執行建立資料表的方法db.execSQL(CREATE_BOOK);db.execSQL(CREATE_CATEGORY);Toast.makeText(mContext,"建立資料成功!",Toast.LENGTH_SHORT).show();}//更新資料的方法;更新資料內容的方法;因為已經有了資料庫,則不會再次建立資料庫 ;@Overridepublic 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;@Overrideprotected 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(){@Overridepublic 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(){@Overridepublic 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(){@Overridepublic 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(){@Overridepublic void onClick(View v) {SQLiteDatabase db=dbHelper.getWritableDatabase(); //獲得SQLiteDatabase對象dbint i4=db.delete("Book", "pages>?", new String[]{"500"});//delete(表名,哪個參數,具體值)Toast.makeText(MainActivity.this, "資料刪除成功"+i4, Toast.LENGTH_LONG).show();}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}}
SQLite操作資料庫的步驟