android 对数据库的操作

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.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值