看了好多例子,数据库的操作,都是从 Andorid 自带的 SQLiteDatabase 与 SQLiteOpenHelper下面 搞一搞就成了但现在我的需求是,有一个类管理数据,希望这个数据库是个单例,任何项目中的类都能用它。所以就没怎么用 Andorid 自带的类,继承或者封装
但是发现自己的不太好使,可能是主要是没用到框架,但是确实看见有个数据库生成。但是,无论怎么用 execSQL() ,好像数据库都是空的。我把相关的代买贴上来了,重仙过目
public class PersistenceManager { private SQLiteDatabase m_db = null;
private SQLiteOpenHelper m_db_helper = null;
private boolean m_initialized = false;

public void initialiation()
{
if( this.m_initialized ){
Log.i(TAG, "PersistenceManager has been intialized, it dont need to re-initialized again");
return;
}


Log.i(TAG, "PersistenceManager starts to initialiation");

                // 跑了以后,确实发现目录下面有个 testdb
m_db = SQLiteDatabase.openOrCreateDatabase("/data/data/com.lazyboy/testdb.db", null);// 跑了以后,确实发现目录下面有个 testdb                // 不管用啊,testdb 放到 SQLite3.exe 看了什么都没有啊,没有TABLE
m_db.execSQL("CREATE TABLE `complet_task_table` (`task_id` varchar(25), `task_name` varchar(20), PRIMARY KEY (`task_id`)) ");
                // 不管用啊,testdb 放到 SQLite3.exe 看了什么都没有啊,没有TABLE this.m_initialized = true;
Log.i(TAG, "PersistenceManager finishes the initialiation");
}


}
数据库

解决方案 »

  1.   


    // 跑了以后,确实发现目录下面有个 testdb
    m_db = SQLiteDatabase.openOrCreateDatabase("/data/data/com.lazyboy/testdb.db", null);// 不管用啊,testdb 放到 SQLite3.exe 看了什么都没有啊,没有TABLE
    m_db.execSQL("CREATE TABLE `complet_task_table` (`task_id` varchar(25), `task_name` varchar(20), PRIMARY KEY (`task_id`)) ");
               目前只有这两句,我觉得第一句执行完以后,应该会有一个数据库对象?因为原先没有 testdb.db,执行完以后发现这个数据库了我认为第二句,m_db.exeSQL 是不是就该执行了呢? 但是好像数据库 pull 出来之后,没什么东西。我看网上一般会得到一个 getwritedatabase ,执行 sql 才会有用?
     
      

  2.   


    // 跑了以后,确实发现目录下面有个 testdb
    m_db = SQLiteDatabase.openOrCreateDatabase("/data/data/com.lazyboy/testdb.db", null);// 不管用啊,testdb 放到 SQLite3.exe 看了什么都没有啊,没有TABLE
    m_db.execSQL("CREATE TABLE `complet_task_table` (`task_id` varchar(25), `task_name` varchar(20), PRIMARY KEY (`task_id`)) ");
               目前只有这两句,我觉得第一句执行完以后,应该会有一个数据库对象?因为原先没有 testdb.db,执行完以后发现这个数据库了我认为第二句,m_db.exeSQL 是不是就该执行了呢? 但是好像数据库 pull 出来之后,没什么东西。我看网上一般会得到一个 getwritedatabase ,执行 sql 才会有用?
     
    我看网上一般会得到一个 getwritedatabase ,执行 sql 才会有用?-----好久不写了,我记得以前好像是这样的