运行结果:
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