当前位置: 代码迷 >> Android >> 创建数据库 SQLiteOpenHelper,该怎么解决
  详细解决方案

创建数据库 SQLiteOpenHelper,该怎么解决

热度:414   发布时间:2016-04-27 22:19:51.0
创建数据库 SQLiteOpenHelper
运行结果:

public class StudentHelper extends SQLiteOpenHelper{

//在SQLiteOepnHelper的子类当中,必须有该构造函数 
public StudentHelper(Context context) {
//必须通过super调用父类当中的构造函数 
super(context,"student.db", null, 1);
}

 //该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDatabse对象的时候,才会调用这个方法 
public void onCreate(SQLiteDatabase db) {
//execSQL函数用于执行SQL语句
db.execSQL("create table student(id integer primary key autoincrement,name varchar(50),pwd varchar(50)");
System.out.println("create a Database");
}

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  System.out.println("update a Database"); 

}

}


另外一个类
public class MainActivity extends Activity {
 StudentHelper studentHelper;
public MainActivity(Context mContext){
studentHelper=new StudentHelper(mContext);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addStudent();
}

//添加一个学生
public void addStudent(){
//SQLiteDatabase对数据库进行操作的一个类
SQLiteDatabase db=null;
/*只有调用了StudentHelper对象的getReadableDatabase()方法,或者是getWritableDatabase()方法之后,
才会创建,或打开一个数据库*/
db=studentHelper.getWritableDatabase();

//ContentValues 存储基本类型的数据
ContentValues m=new ContentValues();
m.put("id", 1);
m.put("name", "gu");
m.put("pwd", "123");

db.insert("student", null, m);

}

}

1、我想添加一个学生放在学生表里面,运行出错。不知道错在哪里?
------解决思路----------------------
不会看错误的解释么,说MainActivity没有空的构造器,无法实例化这个类

你把
public MainActivity(Context mContext){
studentHelper=new StudentHelper(mContext);
}
这段代码去掉,随便在onCreate等等其它地方初始化studentHelper