这个问题可能由于以下几个原因引起:
以下是解决方法示例:
// 步骤1:创建SQLiteOpenHelper子类MyDBHelper public class MyDBHelper extends SQLiteOpenHelper {
// 构造函数,传递数据库名称和版本号
public MyDBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
// 创建数据库时调用
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE my_table (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)";
db.execSQL(CREATE_TABLE);
}
// 升级数据库时调用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 删除旧表,建立新表
db.execSQL("DROP TABLE IF EXISTS my_table");
onCreate(db);
}
}
// 步骤2:在Activity中创建数据库和表 public class MainActivity extends AppCompatActivity {
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建MyDBHelper实例
MyDBHelper dbHelper = new MyDBHelper(this, "my_db", null, 1);
// 得到一个可写的SQLiteDatabase对象
db = dbHelper.getWritableDatabase();
}
}
// 步骤3:插入数据 public void insertData() { // 获取可写数据库对象 SQLiteDatabase db = dbHelper.getWritableDatabase(); // 建立ContentValues对象 ContentValues values = new ContentValues(); // 往ContentValues对象存放数据,键-值对模式 values.put("name", "Tom"); values.put("age", 20); // 插入数据,返回插入数据的id long rowId = db.insert("my_table", null, values); }