Android中能不能判断一个数据库是create来的,还是open来的?
阿神
阿神 2017-04-17 17:28:58
0
5
401

先简单说一下我想实现的功能,就是创建数据库的时候,同时也会创建一个表,然后就往表里插入数据;之后,就是打开数据库,然后对表的数据进行更新。
所以我想知道这个数据库是创建来的,还是打开来的,好让我执行不同的操作。
而我创建数据库的方法是继承SQLiteOpenHelper类和实现getWritableDatabase方法。具体如下图:

这样的话,我就打算判断这个mSqLiteDatabase(这是SQLiteDatabase的一个实例对象,截图没放出来)是创建来的,还是打开来的。因为我看文档里说,上图的方法是:存在该数据库就打开,不存在就创建。而getWritableDatabase方法是返回一个数据库的对象。所以我就这样瞎想,不知道可不可以判断。如果不行的话,有没有其它可替代的方法。

阿神
阿神

闭关修行中......

모든 응답(5)
伊谢尔伦

필요에 따라 새로 생성되는지, 열었는지 걱정할 필요는 없습니다. 데이터가 있는지 확인하고, 없으면 업데이트하세요. 새로운 것.

巴扎黑

DatabaseHelperonCreate(SQLiteDatabase) 메소드로 테이블을 생성하면 됩니다. 이 메소드는 데이터베이스가 처음 생성될 때 호출됩니다. 그런 다음 데이터를 삽입하기만 하면 됩니다

洪涛

저는 항상 xutils를 사용하여 데이터베이스를 운영해왔습니다. 이는 데이터베이스를 매우 잘 캡슐화하고 매우 간단합니다.
내부에는 데이터를 자동으로 비교하여 열지 아니면 업데이트할지를 결정하는 db.openorupdate 메소드가 있습니다.

네이티브 안드로이드 방식을 사용한다면 판단할 필요 없이 새로운 데이터가 있는지만 확인하고 있으면 삽입하면 됩니다

小葫芦

OnCreate는 데이터베이스를 처음 열 때만 호출됩니다. 이때는 테이블만 생성하면 됩니다. 다음에 데이터베이스를 열 때는 OnCreate가 호출되지 않습니다.

PHPzhong

우선 xiluoduyu님의 답변에 따르면 제가 원하는 기능은 실제로 가능하다고 생각합니다. 답변해주셔서 정말 감사드립니다. 그런데 이 질문을 드리는 과정에서 제목에 설명된 문제가 사실 제가 알고 이해하고 싶은 문제라는 것을 알게 되었습니다. 어쩌면 이 질문이 이상할 수도 있고, 심지어 답이 없을 수도 있으니 먼저 메모해 두고 나중에 다시 찾아오겠습니다. 감사합니다!

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿