文章标题

来源:互联网 发布:网页在线客服源码 编辑:程序博客网 时间:2024/06/13 03:18

Android开发应用数据库的一些注意事项

  • 在应用数据库的时候,我尝试着继承SQLiteOpenHelper 这个类来操作数据库。在初始化 SQLiteOpenHelper 的时候,参数的传入出现问题导致程序一直崩溃。其中 SQLiteOpenHelper 的继承写法如下
    `

    public class MyDatabaseHelper extends SQLiteOpenHelper {private Context mContext;public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {super(context, name, factory, version, errorHandler);mContext = context;}@Overridepublic void onCreate(SQLiteDatabase db) {   //建立一张表来存储当前用户的用户名、密码、备忘录内容、建立时间和提醒时间   /* try{    db.execSQL("create table memorandum (user text primary key, pwd text, memo text,"            + " establish text, alarm text)");    Log.d("MyDatabaseHelper","create table memorandum succeeded");}catch (Exception e){    e.printStackTrace();    Log.d("MyDatabaseHelper","create table memorandum failed");}*/}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}}`

    在主活动中的写法如下:
    `

    public class MainActivity extends AppCompatActivity {private MyDatabaseHelper myDatabaseHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);myDatabaseHelper = new MyDatabaseHelper(MainActivity.this,"Memorandum.db",null,1,null);}}`  

    关键的参数就在于
    public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,int version, DatabaseErrorHandler errorHandler) {
    super(context, name, factory, version, errorHandler);
    mContext = context;
    }

    这段代码段的int version 参数的传入值得不为0。若为0,则活动加载失败。因此在初始化的时候 version 的传入值必须得不为0。

0 0
原创粉丝点击