當應用程序需要處理的數據量比較大時,爲了方便對數據的管理,通常需要使用數據庫來存儲數據。
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);
下載鏈接: