很抱歉打扰你们所有人,但有时帮助就是我要求的。我是Android开发的新手,目前我正在通过ChannelKnowledge通道在youtube上关注android数据库创建教程,但是,它只适用于一个表,而我需要在数据库中有3个表,并且无法获得我的方式。任何帮助,将不胜感激。提前谢谢!
这是我目前的代码。
公共类DatabaseHelper扩展了SQLiteOpenHelper {
//database name declaration
public static final String DATABASE_NAME = "museum.db";
public static final String TABLE_NAME = "exponent_table";
public static final String COL_1 = "ID";
public static final String COL_2 = "TITLE";
public static final String COL_3 = "STORY";
public static final String COL_4 = "AUTHOR";
public static final String COL_5 = "DATE";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
SQLiteDatabase db= this.getWritableDatabase(); //will create database and table, just for checking, will be replaced
}
@Override
public void onCreate(SQLiteDatabase db) {
//creating tables ???
db.execSQL("create table "+TABLE_NAME+" (ID INTEGER PRIMARY KEY AUTOINCREMENT, TITLE TEXT, STORY TEXT, AUTHOR TEXT, DATE STRING)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
onCreate(db);
}
}
我在链接上看到了类似的内容: Multi-table database SQLite android
但仍然不明白。
答案 0 :(得分:6)
this是非常好的教程..读它
你可以像这样创建多个表
=COUNTBLANK(INDIRECT("A"&LOOKUP(2,1/($A$2:A2<>""),ROW($A$2:A2))&":A"&ROW()))
答案 1 :(得分:0)
您只需调用更多db.execSQL(sqlQuery);
方法。
例如:
db.execSQL("create table "+TABLE_NAME+" (ID INTEGER PRIMARY KEY AUTOINCREMENT, TITLE TEXT, STORY TEXT, AUTHOR TEXT, DATE STRING)");
db.execSQL("create table "+TABLE_NAME2+" (ID INTEGER PRIMARY KEY AUTOINCREMENT, TITLE TEXT, STORY TEXT, AUTHOR TEXT, DATE STRING)");
db.execSQL("create table "+TABLE_NAME3+" (ID INTEGER PRIMARY KEY AUTOINCREMENT, TITLE TEXT, STORY TEXT, AUTHOR TEXT, DATE STRING)");
如果您不了解SQL,我建议您在here之前学习它。
答案 2 :(得分:0)
在Kotlin中,我使数据库循环在一个常量数组中进行,因此我只需在数组中添加表名,就像这样
我的对象缺点
package app.packagename
object cons {
val tableNames = arrayOf(
0*/"tableZero",
1*/"tableOne",
2*/"tableTwo"
)
}
我的SQLiteDatabase
package app.packagename
import app.packagename.cons
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper
class DBHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) {
override fun onCreate(db: SQLiteDatabase) {
for(i in cons.tableNames.indices){
val createProductsTable = ("CREATE TABLE " + cons.tableNames[i] + "("
+ Business.idKey + " INTEGER PRIMARY KEY AUTOINCREMENT ,"
+ Business.KEY_a + " TEXT, "
+ Business.KEY_b + " TEXT, "
+ Business.KEY_c + " TEXT, "
+ Business.KEY_d + " TEXT, "
+ Business.KEY_e + " INTEGER )")
db.execSQL(createProductsTable)
}
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
// Drop older table if existed, all data will be gone!!!
for(i in cons.tableNames.indices){
db.execSQL("DROP TABLE IF EXISTS ${cons.tableNames[i]}")
// Create tables again
onCreate(db)
}
}
companion object {
//version number to upgrade database version
//each time if you Add, Edit table, you need to change the
//version number.
private val DATABASE_VERSION = 1
// Database Name
private val DATABASE_NAME = "tables.db"
}
}