您的位置:首页 > 数据库

SQLite的基本使用二

2013-11-15 11:53 232 查看
这个星期一直在与狗屁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;
}

}


实现效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: