您的位置:首页 > 数据库 > SQL

结合SQLiteOpenHelper使用单例模式

2014-07-03 10:19 267 查看

SQLite继承SQLiteOpenHelper类单例模式的实现:

public class DBHelper extends SQLiteOpenHelper {



private final static String DB_NAME="my_info";

private final static int VERSION =1;



private static DBHelper instance=null;

public static DBHelper getInstance(Context context){



if(instance==null){



instance=new DBHelper(context);

}



return instance;

}

private DBHelper(Context context){



super(context, DB_NAME, null, VERSION);



}


........

}

4.建表语句在onCreate()方法中的实现:

@Override

public void onCreate(SQLiteDatabase db) {

// TODO Auto-generated method stub


//建表语句直接使用db.execSQL(String sql)方法执行SQL建表语句



String createTable="create table user(id integer primary key,name text,age integer);";

db.execSQL(createTable);

}



5.SQLite增删改查的实现



public static void insertInfo(Context context,Info info) {

SQLiteDatabase db=DBHelper.getInstance(context).getWritableDatabase();

ContentValues values = new ContentValues();

values.put("name", info.getName());

values.put("age", info.getAge());

db.insert("user", null, values);

db.close();

}

//删除信息

public static void deleteInfo(Context context,int id) {

SQLiteDatabase db=DBHelper.getInstance(context).getWritableDatabase();



db.delete("user", "id=" + id, null);

db.close();

}

//更新信息

public static void updateInfo(Context context,int id,Info info) {

SQLiteDatabase db=DBHelper.getInstance(context).getWritableDatabase();

ContentValues values = new ContentValues();

values.put("name", info.getName());

values.put("age", info.getAge());

db.update("user", values, "id="+id, null);

db.close();

}





// 查找所有用户信息

public List<Info> queryAllInfo(Context context) {

SQLiteDatabase db=DBHelper.getInstance(context).getWritableDatabase();

List list = new ArrayList<Info>();

Cursor cursor = db.query("user", null, null, null, null, null, null);

if (cursor.moveToFirst()) {

do {

int age = cursor.getInt(cursor.getColumnIndex("age"));

String name = cursor.getString(cursor.getColumnIndex("name"));

Info info=new Info();

info.setName(name);

info.setAge(age);

list.add(info);

} while (cursor.moveToNext());

}

db.close();

return list;

}

6.插入一条测试数据

点击按钮:





按钮的事件处理如下:

private OnClickListener listener=new OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub





Info info=new Info("Jun",21);

DBHelper.getInstance(ShowActivity.this).insertInfo(ShowActivity.this, info);

Toast.makeText(ShowActivity.this, "insert data success!", Toast.LENGTH_SHORT).show();



}};




数据库中SQLite数据库中user表中的信息为:



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