日期:2014-05-16 浏览次数:20471 次
package com.eoeAndroid.SQLite; import android.app.Activity; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class ActivityMain extends Activity { OnClickListener listener1 = null; OnClickListener listener2 = null; OnClickListener listener3 = null; OnClickListener listener4 = null; OnClickListener listener5 = null; Button button1; Button button2; Button button3; Button button4; Button button5; DatabaseHelper mOpenHelper; private static final String DATABASE_NAME = "dbForTest.db"; private static final int DATABASE_VERSION = 1; private static final String TABLE_NAME = "diary"; private static final String TITLE = "title"; private static final String BODY = "body"; /** * SQLiteOpenHelper这个类是一个辅助类。这个类主要生成一个数据库,并对数据库的版本进行管理。 * 当在程序中调用这个类的方法getWritableDatabase()或者getReadableDatabase()方法的时候, * 如果当时没有数据,那么android系统就会自动生成一个数据库。SQLiteOpenHelper是一个抽象类, * 我们通常需要继承它,并且实现3个函数。 * * onCreate(SQLiteDatabase ):在数据库第一次生成的时候会调用这个方法,一般在这个方法里 * 边生存数据库表 * * onUpgrade(SQLiteDatabase,int,int):在数据库需要升级的时候,Android系统会主动的调用 * 这个方法。一般我们在这个方法里边删除数据表,并建立新表,当然是否还需要做其他的操作,完全取决 * 于应用的需求。 * * onOpen(SQLiteDatabase):这是当打开数据库时的回调函数,一般用不到 */ private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override /** * 一个SQLiteDatabase的实例代表了一个SQLite的数据库,通过SQLiteDatabase实例的一些方法, * 我们可以执行SQL语句,对数据进行增、删、改、查的操作。需要注意的是,数据库对于一个应用来说 * 是私有的,并且在一个应用中,数据库的名字也是唯一的。 */ public void onCreate(SQLiteDatabase db) { String sql = "CREATE TABLE " + TABLE_NAME + " (" + TITLE + " text not null, " + BODY + " text not null " + ");"; Log.i("haiyang:createDB=", sql); db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); prepareListener(); initLayout(); mOpenHelper = new DatabaseHelper(this); } private void initLayout() { button1 = (Button) findViewById(R.id.button1); button1.setOnClickListener(listener1); button2 = (Button) findViewById(R.id.button2); button2.setOnClickListener(listener2); button3 = (Button) findViewById(R.id.button3); button3.setOnClickListener(listener3); button4 = (Button) findViewById(R.id.button4); button4.setOnClickListener(listener4); button5 = (Button) findViewById(R.id.button5); button5.setOnClickListener(listener5); } private void prepareListener() { listener1 = new OnClickListener() { public void onClick(View v) { CreateTable(); } }; listener2 = new OnClickListener() { public void onClick(View v) { dropTable(); } }; listener3 = new OnClickListener() { public void onClick(View v) { insertItem(); } }; listener4 = new OnClickListener() { public void onClick(View v) { deleteItem(); } }; listener5 = new OnClickListener() { public void onClick(View v) { showItems(); } }; } /* * 重新创建数据库 */ private void CreateTable() { SQLiteDatabase db = mOpenHelper.getWritableDatabase(); String sql = "CREATE TABLE " + TABLE_NAME + " (" + TITLE + " text not null, " + BODY + " text not null " + ");"; Log.i("haiyang:createDB=", sql); try { db.execSQL("DROP TABLE IF EXISTS diary"); db.execSQL(sql); setTitle("数据表重建成功"); } catch (SQLException e) { setTitle("数据表重建失败"); } } /* * 删除数据库 */ private void dropTable() { SQLiteDatabase db = mOpenHelper.getWritableDatabase(); String sql = "drop table " +