您的位置:首页 > 其它

文章标题

2017-01-04 23:58 218 查看

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;
}

@Override
public 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");
}*/

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}
}`


在主活动中的写法如下:

`

public class MainActivity extends AppCompatActivity {

private MyDatabaseHelper myDatabaseHelper;
@Override
protected 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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: