android使用的数据库为SQLite,
在android中如何建立数据库来保存程序中的数据,具体代码如下:
package com.stmars.sqlite;
import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
//定义一个数据库帮助类继承SQLiteOpenHelper
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
//必须复写此方法,参数中包含要创建的数据库的名字和版本号,name:要创建的数据库的名字,version:数据库版本号
public MySQLiteOpenHelper(Context context, String name,
CursorFactory factory, int version,
DatabaseErrorHandler errorHandler) {
super(context, name, factory, version, errorHandler);
}
//oncreate 方法会在调用此对象getWritableDatabase()或getReadableDatabase()的时候执行,可以在里面做一些创建表操作等初始化的工作
@Override
public void onCreate(SQLiteDatabase arg0) {
arg0.execSQL("CREATE TABLE student(_id INT,name TEXT)");
Log.i("123", "oncreate database");
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
}
这样我们就可以写一个测试来使用我们的数据库了
package com.stmars.sqlite;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import com.studymar.radiocheckbox.R;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class SqliteTest extends Activity {
//1.声明控件
Button createButton=null;
Button insertButton=null;
Button updateButton=null;
Button queryButton=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sqlitexml);
//2.获得控件的对象
createButton=(Button)findViewById(R.id.crdatabase);
insertButton=(Button)findViewById(R.id.insertdata);
updateButton=(Button)findViewById(R.id.updatedata);
queryButton=(Button)findViewById(R.id.querydata);
//3.绑定监听器
createButton.setOnClickListener(new MyButtonClick());
insertButton.setOnClickListener(new MyButtonClick());
updateButton.setOnClickListener(new MyButtonClick());
queryButton.setOnClickListener(new MyButtonClick());
}
class MyButtonClick implements OnClickListener{
@Override
public void onClick(View v) {
int n=v.getId();
switch (n) {
case R.id.crdatabase:
createDataBase();
break;
case R.id.insertdata:
insertdata();
break;
case R.id.updatedata:
updatedata();
break;
case R.id.querydata:
querydata();
break;
default:
break;
}
}
private void querydata() {
MySQLiteOpenHelper mydatabase=new MySQLiteOpenHelper(SqliteTest.this, "datatest", null, 1, null);
SQLiteDatabase database=mydatabase.getWritableDatabase();
Cursor cursor=database.query(false, "student", new String[]{"id","name"},
"id=?", new String[]{"1"}, null, null, null, null, null);
int id=0;
String nameString=null;
while (cursor.moveToNext()) {
id=cursor.getInt(cursor.getColumnIndex("id"));
nameString=cursor.getString(1);
}
cursor.close();
Log.i("123", "id="+id+",name="+nameString);
}
private void updatedata() {
Log.i("123", "update data");
MySQLiteOpenHelper mydatabase=new MySQLiteOpenHelper(SqliteTest.this, "datatest", null, 1, null);
SQLiteDatabase database=mydatabase.getWritableDatabase();
ContentValues contentValues=new ContentValues();
//contentValues.put("id", 3);
contentValues.put("name", "aobama");
database.update("student", contentValues, "name=?", new String[]{"wangwu"});
//database.upda
}
private void insertdata() {
Log.i("123", "insert data");
MySQLiteOpenHelper mydatabase=new MySQLiteOpenHelper(SqliteTest.this, "datatest", null, 1, null);
SQLiteDatabase database=mydatabase.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put("id", "1");
contentValues.put("name", "zhangsan");
database.insert("student",null,contentValues);
contentValues.put("id", "2");
contentValues.put("name", "lisi");
database.insert("student", null, contentValues);
}
private void createDataBase() {
MySQLiteOpenHelper mydatabase=new MySQLiteOpenHelper(SqliteTest.this, "datatest", null, 1, null);
SQLiteDatabase database=mydatabase.getReadableDatabase();
}
}
}
如果需要对外提供数据的共享,就需要用到contentProvider.