close
首先在專案包按右鍵>New>Class
原本是
public class SQLiteHelper
打上 extends SQLiteOpenHelper (繼承
變成 圖下
建立資料表,以CreateTable 變數表示
主鍵 _id , name ,age 型態是 TEXT 型態有差
https://www.sqlite.org/datatype3.html (引用)
在 onCreate 的方法內 , db.execSQL(CreateTable) 建立資料表。
以上,建立資料表。完成。
以下 是 建立資料庫以及 新增 刪除 查詢 更新(修改)
MainActivity.java
package com.example.sqlite; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.preference.PreferenceActivity.Header; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends Activity { SQLiteHelper Helper;//宣告 剛建立的class SQLiteHelper SQLiteDatabase db; //宣告 db資料庫 String DB_name="Test.db"; //資料"庫"名稱 Button button1,button2,button3,button4,button5; EditText edittext1,edittext2,edittext3; TextView textview1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Helper = new SQLiteHelper(this, DB_name, null, 1); //建立資料"庫" db = Helper.getReadableDatabase(); //會得到一個SQLiteDatabase類型的只讀的數據庫連接,在這裡直接調用了他的query方法。 //引用:http://charles-android.blogspot.tw/2010/03/androiddatabases.html button1=(Button) findViewById(R.id.button1); button2=(Button) findViewById(R.id.button2); button3=(Button) findViewById(R.id.button3); button4=(Button) findViewById(R.id.button4); button5=(Button) findViewById(R.id.button5); edittext1=(EditText)findViewById(R.id.editText1); edittext2=(EditText)findViewById(R.id.editText2); edittext3=(EditText)findViewById(R.id.editText3); textview1=(TextView)findViewById(R.id.textView1); button1.setOnClickListener(click); button2.setOnClickListener(click); button3.setOnClickListener(click); button4.setOnClickListener(click); button5.setOnClickListener(click); } OnClickListener click = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.button1://新增 ContentValues values = new ContentValues(); values.put("name", edittext1.getText().toString()); values.put("age", edittext2.getText().toString()); db.insert(SQLiteHelper.Table_name, null, values); break; case R.id.button2://刪除 db.delete(SQLiteHelper.Table_name,"_id=?",new String[]{edittext3.getText().toString()}); break; case R.id.button3://查詢 Cursor c = db.query(SQLiteHelper.Table_name, null, null, null, null, null, null); textview1.setText("Num: "+c.getCount()+"\n"); while(c.moveToNext()){ textview1.append( c.getString(c.getColumnIndex("_id"))+":"+ c.getString(c.getColumnIndex("name"))+":"+ c.getString(c.getColumnIndex("age"))+"\n"); } c.close(); break; case R.id.button4: //更新 ContentValues values2 = new ContentValues(); values2.put("name", edittext1.getText().toString()); values2.put("age", edittext2.getText().toString()); db.update(SQLiteHelper.Table_name, values2, "_id = ? ", new String[]{edittext3.getText().toString()}); break; case R.id.button5://刪除 db = Helper.getWritableDatabase(); db.execSQL("DELETE FROM "+SQLiteHelper.Table_name); break; default: break; } } }; }
layout 請自行刻。
附檔案 SQLite.rar
如果想看SQLite裡面的資料可用 SQLiteExpert
路徑:
右上角DDMSB若沒有請到Window>Open perspective>DDMS
DDMS>點選你的模擬器>資料夾找data>data>找專案包名稱>databases>XXX.db
直接開啟SQLiteExpert 把檔案丟進去就可以看了 這圖是之前拍的.
全站熱搜
留言列表