SQLite的基本使用二

这个星期一直在与狗屁DELL交涉都没怎么写博客了,尼玛的狗屁DELL发我一个没有硬盘的机器还不肯退换货,真是气死人了,不说了,说多了都是血。

   直接使用SQLiteDatabase的openOrCreateDatabase可以直接打开或者是新建一个SQLiteDatabase,但是这里存在一个缺点。在每次执行SQL语句的时候都需要在try catch语句中进行,如果在try中直接操作的数据库或者表不存在,就需要在catch中重新创建表并且执行CRUD操作,并且有关数据库的每一个方法都要这么做,重复的代码太多了,所以实际的开发中大都选用SQLiteOpenHelper类。

主要方法:

   synchronized SQLiteDatabase getReadableDatabase():以读写的方式打开数据库。

   synchronized SQLiteDatabase getWritableDatabase();以写的方式打开数据库。

   abstract void onCreate(SQLiteDatabase db)    当第一次创建数据库的时候回调该方法。

   abstract void onUprade(SQLiteDatabase db,int oldversion,int newVersion) 数据库版本更新的时候回调该方法。

  abstract void close()  关闭所有打开的SQLiteDatabase.


使用方法:

  1)继承SQLiteOpenHelper。在构造方法中的参数String name就是数据库的名称。

  2)重写onCreate和onUpgrade方法。

MySQLiteOpenHelper类:

package com.app.db;

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

public class MySQLiteOpenHelper extends SQLiteOpenHelper {

	String createSQL = "create table tb_test(_id integer primary key autoincrement ,name,age )";

	public MySQLiteOpenHelper(Context context, String name,
			CursorFactory factory, int version) {

		super(context, name, factory, version);
	}

	@Override
	public void onCreate(SQLiteDatabase db) {

		db.execSQL(createSQL);

	}

	@Override
	public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

	}

}

Main.java

package com.app.main;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Toast;

import com.app.db.MySQLiteOpenHelper;

public class Main extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		MySQLiteOpenHelper helper = new MySQLiteOpenHelper(this, "my.db3",
				null, 1);

		String insertSQL = "insert into tb_test values(null,'wx',18)";

		SQLiteDatabase db = helper.getReadableDatabase();

		db.execSQL(insertSQL);

		Cursor cursor = db.rawQuery("select * from tb_test", null);

		cursor.moveToFirst();

		int id = cursor.getInt(0);

		Toast.makeText(this, id+"",Toast.LENGTH_SHORT).show();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {

		getMenuInflater().inflate(R.menu.main, menu);
		
		return true;
	}

}

实现效果:

SQLite的基本使用二_第1张图片

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