close

 首先在專案包按右鍵>New>Class

 step11

原本是

public class SQLiteHelper 

打上 extends SQLiteOpenHelper (繼承

變成 圖下

step1step2  

 建立資料表,以CreateTable 變數表示

 

主鍵 _id , name ,age 型態是 TEXT 型態有差

https://www.sqlite.org/datatype3.html (引用)

 data_type  

step3  

在 onCreate 的方法內 , db.execSQL(CreateTable) 建立資料表。

 

以上,建立資料。完成。

以下 是 建立資料以及 新增 刪除 查詢 更新(修改)

 

layout  

 

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

xc  

直接開啟SQLiteExpert 把檔案丟進去就可以看了 這圖是之前拍的.

 

 

 

 

 

 

arrow
arrow
    全站熱搜

    LiHan Chen 發表在 痞客邦 留言(0) 人氣()