我正在尝试创建数据库,但是当我在应用程序上打开文件资源管理器时,没有数据库,也没有应该放置数据库的文件夹,但这可能是因为从未创建过数据库。下面是我的代码。谢谢您的帮助
DatabaseHelper.java
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "Student.db";
public static final String TABLE_NAME = "student_table";
public static final String COL_1 = "ID";
public static final String COL_2 = "NAME";
public static final String COL_3 = "I1Q1";
public static final String COL_4 = "I1Q2";
public static final String COL_5 = "I2Q1";
public static final String COL_6 = "I2Q2";
public static final String COL_7 = "I3Q1";
public static final String COL_8 = "I3Q2";
public static final String COL_9 = "I4Q1";
public static final String COL_10 = "I4Q2";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME +" (ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,I1Q1 TEXT,I1Q2 TEXT,I2Q1 TEXT,I2Q2 TEXT,I3Q1 TEXT,I3Q2 TEXT,I4Q1 TEXT,I4Q2 TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
onCreate(db);
}
}
Main Activity.java
public class MainActivity extends AppCompatActivity {
DatabaseHelper myDb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myDb = new DatabaseHelper(this);
}
}
答案 0 :(得分:1)
您已经在DatabaseHelper
中创建了onCreate()
对象,但是尚未使用SQLiteDatabase
。这就是从未创建数据库的原因。
在myDb.getWrittableDatabase()
中调用onCreate()
,之后将创建数据库。
答案 1 :(得分:0)
正如Skemelio回答的那样,您需要使用数据库执行任何任务才能真正创建它。
一个不错的建议是使用ORM而不是自己编写数据库的所有代码。 我建议使用Room