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