android對數據庫的增刪改查操作

      當應用程序需要處理的數據量比較大時,爲了方便對數據的管理,通常需要使用數據庫來存儲數據。

package com.example.sample7_5;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

	private SQLiteDatabase sld;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		InitViews();
	}
	
	private void InitViews() {
		Button b = (Button) findViewById(R.id.Button01);
		b.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				createOrOpenDatabase();//創建數據庫
			}
		});
		
		b = (Button) findViewById(R.id.Button02);
		b.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				closeDatabase();//關閉數據庫
			}
		});
		
		b = (Button) findViewById(R.id.Button03);
		b.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				insert();//添加記錄
			}
		});
		
		b = (Button) findViewById(R.id.Button04);
		b.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				delete();//刪除記錄
			}
		});
		
		b = (Button) findViewById(R.id.Button05);
		b.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				update();//更新記錄
			}
		});
		
		b = (Button) findViewById(R.id.Button06);
		b.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				query();//查詢記錄
			}
		});
	}

	protected void query() {
		try {
			String sql = "select * from student where sage>?";
			Cursor cur = sld.rawQuery(sql, new String[]{"20"});
			appendMessage("學號\t\t姓名\t\t年齡\t班級");
			while(cur.moveToNext()){
				String sno = cur.getString(0);
				String sname = cur.getString(1);
				int sage = cur.getInt(2);
				String sclass = cur.getString(3);
				appendMessage(sno+"\t"+sname+"\t\t"+sage+"\t"+sclass);
			}
			cur.close();
		} catch (Exception e) {
			Toast.makeText(MainActivity.this, "數據庫錯誤:"+e.toString(), Toast.LENGTH_SHORT).show();
			e.printStackTrace();
		}
	}

	protected void update() {
		try {
			String sql = "update student set stuname='李勇'";
			sld.execSQL(sql);
			appendMessage("成功更新記錄");
		} catch (Exception e) {
			Toast.makeText(MainActivity.this, "數據庫錯誤:"+e.toString(), Toast.LENGTH_SHORT).show();
			e.printStackTrace();
		}
	}

	protected void delete() {
		try {
			String sql = "delete from student;";
			sld.execSQL(sql);
			appendMessage("成功刪除所有記錄");
		} catch (Exception e) {
			Toast.makeText(MainActivity.this, "數據庫錯誤:"+e.toString(), Toast.LENGTH_SHORT).show();
			e.printStackTrace();
		}
	}

	protected void insert() {
		try {
			String sql = "insert into student values('10001','王強', 23, '97002')";
			sld.execSQL(sql);
			appendMessage("成功插入一條記錄");
		} catch (Exception e) {
			Toast.makeText(MainActivity.this, "數據庫錯誤:"+e.toString(), Toast.LENGTH_SHORT).show();
			e.printStackTrace();
		}
	}

	protected void closeDatabase() {
		sld.close();
	}

	protected void createOrOpenDatabase() {
		try {
			sld = SQLiteDatabase.openDatabase("/data/data/com.example.sample7_5/mydb", null, SQLiteDatabase.OPEN_READWRITE|SQLiteDatabase.CREATE_IF_NECESSARY);
			appendMessage("數據庫已經成功打開");
			String sql = "create table if not exists student(sno char(5), stuname varchar(20), sage integer, sclass char(5))";
			sld.execSQL(sql);
			appendMessage("student 已經成功創建!");
		} catch (Exception e) {
			Toast.makeText(MainActivity.this, "數據庫錯誤:"+e.toString(), Toast.LENGTH_SHORT).show();
			e.printStackTrace();
		}
	}

	private void appendMessage(String message) {
		EditText et = (EditText) findViewById(R.id.EditText01);
		et.append(message+"\n");;
	}
}

如果想借用代碼,需要改動的就是創建數據庫的位置,即改動下面的代碼即可。
sld = SQLiteDatabase.openDatabase("/data/data/com.example.sample7_5/mydb", null, SQLiteDatabase.OPEN_READWRITE|SQLiteDatabase.CREATE_IF_NECESSARY);

下載鏈接:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章