Android SQLiteOpenHelper的使用

package com.Aina.Android;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

/**
 * com.Aina.Android Pro_SQLiteDatabase
 * 
 * @author Aina.huang E-mail: [email protected]
 * @version 创建时间:2010 Jun 29, 2010 9:57:21 AM 类说明
 */
public class DatabaseHelper extends SQLiteOpenHelper {

	private Context mContext = null;
	private String str = "";
	private String table = "";

	public DatabaseHelper(Context context, String name, CursorFactory factory,
			int version, String str, String table) {
		super(context, name, factory, version);
		this.mContext = context;
		this.str = str;
		this.table = table;
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		db.execSQL(str);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		db.execSQL("DROP TABLE "+table);
		this.onCreate(db);

	}
}



package com.Aina.Android;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

/**
 * com.Aina.Android Pro_SQLiteDatabase
 * 
 * @author Aina.huang E-mail: [email protected]
 * @version 创建时间:2010 Jun 29, 2010 10:11:57 AM 类说明
 */
public class MyDataBaseAdapter {

	private Context mContext = null;
	private SQLiteDatabase mSQLiteDatabase = null;
	private DatabaseHelper dh = null;
	private static final String DB_NAME = "Text.db";
	private static final int DB_VERSION = 1;
	private static final String TABLE_NAME = "table1";
	private static final String COLUMN_ID = "_id";
	public static final String COLUMN_NAME = "name";
	public static final String COLUMN_DATA = "data";
	private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME
			+ " (" + COLUMN_ID + " INTEGER PRIMARY KEY," + COLUMN_NAME
			+ " TEXT," + COLUMN_DATA + " INTEGER NOT NULL)";
	public MyDataBaseAdapter(Context context){
		mContext = context;
	}
	/**
	 * 打开数据库
	 */
	public void open(){
		dh = new DatabaseHelper(mContext,DB_NAME,null,DB_VERSION,CREATE_TABLE,TABLE_NAME);
		mSQLiteDatabase = dh.getWritableDatabase();
	}
	/**
	 * 关闭数据库
	 */
	public void close(){
		dh.close();
	}
	/**
	 * 插入
	 */
	public void insert(){
		try{
			ContentValues cv = new ContentValues();
			cv.put(COLUMN_NAME, "张三");
			cv.put(COLUMN_DATA, 10);
			mSQLiteDatabase.insert(TABLE_NAME, null, cv);
		}catch(Exception ex){
			ex.printStackTrace();
		}
	}
	/**
	 * 修改
	 */
	public void update(){
		try{
			String sql = "UPDATE "+TABLE_NAME+" SET "+COLUMN_NAME+" ='李四' WHERE  _id=1";
			mSQLiteDatabase.execSQL(sql);
		}catch(Exception ex){
			ex.printStackTrace();
		}
	}
	/**
	 * 修改
	 */
	public void delete(){
		try{
			mSQLiteDatabase.delete(TABLE_NAME, "_id=2", null);
		}catch(Exception ex){
			ex.printStackTrace();
		}
	}
	/**
	 * 查询
	 */
	public Cursor select(){
		Cursor cursor = null;
		try{
			String sql = "SELECT * FROM "+TABLE_NAME;
			cursor = mSQLiteDatabase.rawQuery(sql, null);
			return cursor;
		}catch(Exception ex){
			ex.printStackTrace();
			return null;
		}
	}
}



package com.Aina.Android;

import android.app.Activity;
import android.database.Cursor;
import android.graphics.Color;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.SimpleCursorAdapter;
import android.widget.LinearLayout.LayoutParams;
import android.widget.ListView;

public class Test extends Activity {
	/** Called when the activity is first created. */
	private MyDataBaseAdapter mdba = null;
	private LinearLayout ll = null;
	private ListView lv = null;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);		
		ll = new LinearLayout(this);
		ll.setOrientation(LinearLayout.VERTICAL);
		ll.setBackgroundColor(Color.BLACK);
		ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
				LayoutParams.WRAP_CONTENT));
		lv = new ListView(this);
		lv.setBackgroundColor(Color.BLACK);
		ll.addView(lv, new LayoutParams(LayoutParams.FILL_PARENT,
				LayoutParams.WRAP_CONTENT));
		setContentView(ll);
		mdba = new MyDataBaseAdapter(this);
		mdba.open();
		this.show();
	}

	@Override
	protected void onPause() {
		super.onPause();
		mdba.close();
	}

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		switch (keyCode) {
		case KeyEvent.KEYCODE_DPAD_LEFT:
			mdba.insert();
			break;
		case KeyEvent.KEYCODE_DPAD_RIGHT:
			mdba.delete();
			break;
		case KeyEvent.KEYCODE_DPAD_UP:
			mdba.update();
			break;
		}
		this.show();
		return super.onKeyDown(keyCode, event);
	}

	private void show() {
		Cursor cursor = mdba.select();
		if (cursor != null) {
			ListAdapter adapter = new SimpleCursorAdapter(this,
					android.R.layout.simple_list_item_2, cursor, new String[] {
							MyDataBaseAdapter.COLUMN_NAME,
							MyDataBaseAdapter.COLUMN_DATA }, new int[] {
							android.R.id.text1, android.R.id.text2 });
			lv.setAdapter(adapter);
		}
	}
}

你可能感兴趣的:(sql,android,sqlite,qq,OS)