haizeiwangjoin 2015-05-18 13:41 采纳率: 0%
浏览 2764

关于不同的activity获得SQLite对象

我创建了一个SQLite以及操作这个数据库的类,代码如下
这是数据库的类
public class account extends SQLiteOpenHelper {
private static final int VERSION = 1;// 定义数据库版本号
private static final String DBNAME = "account.db";// 定义数据库名
public account(Context context){// 定义构造函数

    super(context, DBNAME, null, VERSION);// 重写基类的构造函数
}

@Override
public void onCreate(SQLiteDatabase db){// 创建数据库
    db.execSQL("create table tb_pname(id INTEGER PRIMARY KEY AUTOINCREMENT,packageName varchar(20))");// 创建表,表的一列为packageName,一列为主键id,id的值可递增
    //db.execSQL("create table tb_pwd (password varchar(20))");//创建密码表
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)// 覆写基类的onUpgrade方法,以便数据库版本更新
{

}

}
这是操作数据库的类
public class PwdDAO {
private account helper;// 创建DBOpenHelper对象
private SQLiteDatabase db;// 创建SQLiteDatabase对象
private static final String USER_TABLE="tb_pname";
public PwdDAO(Context context)// 定义构造函数
{
helper = new account(context);// 初始化account对象
db=helper.getWritableDatabase();//获得操作数据库的对象
}
public account getHelper(){
return helper;
}
我在mainActivity中创建了数据库的实例,并获得操作对象的代码如下
pwdDAO=new PwdDAO(this);//首先创建数据库
helper=pwdDAO.getHelper();
SQLiteDatabase db=helper.getWritableDatabase();
那么问题来了,我想要在另一个 activity中也获得这个数据库的操作对象,应该怎样做,如果再执行如同上面的语句,岂不是又创建了一个数据库,这个问题应该怎样解决
求解,各位大神

  • 写回答

2条回答

  • bdmh 移动开发领域优质创作者 2015-05-18 14:15
    关注

    你应该用单例模式,内部有一个静态的变量,从始至终就这一个

    评论

报告相同问题?

悬赏问题

  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入