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仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘