您好我是Android Studio和本网站的新手,并尝试使用SQLite作为数据库。我正在创建一个基于成分的搜索食物菜单。我把菜单分成了3种类型的菜肴,所以有3张桌子可以分开每种菜肴。还有另外3张香料,肉类和蔬菜桌子。总共我在1个数据库中创建了6个表。我正在尝试将3种美食表加入1中,将成分加入1中。分离每个项目背后的想法是出于显示目的。请帮忙!下面是我的数据库代码,在底部是我尝试加入表但不成功:
public class mysqlite extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "cuisine_database5.db";
//Cuisine Table------------------------------------
public static final String CHINESE_TABLE = "chinesetable";
public static final String CHI_ID = "CHI_ID";
public static final String CHI_TITLE = "CHI_TITLE"; //for title of dish
public static final String CHI_DESC = "CHI_DESC"; //for description
public static final String CHI_IG = "CHI_IG"; //for ingredients
public static final String JAPANESE_TABLE = "japanesetable";
public static final String JAP_ID = "JAP_ID";
public static final String JAP_TITLE = "JAP_TITLE"; //for title of dish
public static final String JAP_DESC = "JAP_DESC"; //for description
public static final String JAP_IG = "JAP_IG"; //for ingredients
public static final String WESTERN_TABLE = "westerntable";
public static final String WES_ID = "WES_ID";
public static final String WES_TITLE = "WES_TITLE"; //for title of dish
public static final String WES_DESC = "WES_DESC"; //for description
public static final String WES_IG = "WES_IG"; //for ingredients
//Ingredient Table----------------------------------
public static final String SPICE_TABLE = "spicetable";
public static final String SPICE_ID = "SPICE_ID";
public static final String SPICE_TITLE = "SPICE_TITLE";
public static final String MEAT_TABLE = "meattable";
public static final String MEAT_ID = "MEAT_ID";
public static final String MEAT_TITLE = "MEAT_TITLE";
public static final String VEGGIE_TABLE = "veggietable";
public static final String VEGGIE_ID = "VEGGIE_ID";
public static final String VEGGIE_TITLE = "VEGGIE_TITLE";
//Join table
/*public static final String M = "spicetable";
public static final String SPICE_ID = "SPICE_ID";
public static final String SPICE_TITLE = "SPICE_TITLE";*/
public mysqlite(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String query1, query2, query3, query4, query5, query6;
query1 = "CREATE TABLE "+CHINESE_TABLE+"("
+CHI_ID+ " INTEGER PRIMARY KEY, "
+CHI_TITLE+ " TEXT, "
+CHI_DESC+ " TEXT, "
+CHI_IG+ " TEXT " + ");";
db.execSQL(query1);
query2 = "CREATE TABLE "+JAPANESE_TABLE+"("
+JAP_ID+ " INTEGER PRIMARY KEY, "
+JAP_TITLE+ " TEXT, "
+JAP_DESC+ " TEXT, "
+JAP_IG+ " TEXT " + ");";
db.execSQL(query2);
query3 = "CREATE TABLE "+WESTERN_TABLE+"("
+WES_ID+ " INTEGER PRIMARY KEY, "
+WES_TITLE+ " TEXT, "
+WES_DESC+ " TEXT, "
+WES_IG+ " TEXT " + ")";
db.execSQL(query3);
query4 = "CREATE TABLE "+SPICE_TABLE+"("
+SPICE_ID+ " INTEGER PRIMARY KEY, "
+SPICE_TITLE+ " TEXT "+ ");";
db.execSQL(query4);
query5 = "CREATE TABLE "+MEAT_TABLE+"("
+MEAT_ID+ " INTEGER PRIMARY KEY, "
+MEAT_TITLE+ " TEXT " + ");";
db.execSQL(query5);
query6 = "CREATE TABLE "+VEGGIE_TABLE+"("
+VEGGIE_ID+ " INTEGER PRIMARY KEY, "
+VEGGIE_TITLE+ " TEXT " + ")";
db.execSQL(query6);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS" + CHINESE_TABLE);
db.execSQL("DROP TABLE IF EXISTS" + JAPANESE_TABLE);
db.execSQL("DROP TABLE IF EXISTS" + WESTERN_TABLE);
db.execSQL("DROP TABLE IF EXISTS" + SPICE_TABLE);
db.execSQL("DROP TABLE IF EXISTS" + MEAT_TABLE);
db.execSQL("DROP TABLE IF EXISTS" + VEGGIE_TABLE);
onCreate(db);
}
//----------------------------------------------------
//adding item into database table---------------------
public boolean addtoChinesetable(String title, String desc, String ig) {
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(CHI_TITLE, title);
contentValues.put(CHI_DESC, desc);
contentValues.put(CHI_IG, ig);
long checker = sqLiteDatabase.insert(CHINESE_TABLE, null, contentValues);
if (checker == -1) {
return false;
} else {
return true;
}
}
public boolean addtoJapanesetable(String title, String desc, String ig) {
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(JAP_TITLE, title);
contentValues.put(JAP_DESC, desc);
contentValues.put(JAP_IG, ig);
long checker = sqLiteDatabase.insert(JAPANESE_TABLE, null, contentValues);
if (checker == -1) {
return false;
} else {
return true;
}
}
public boolean addtoWesterntable(String title, String desc, String ig) {
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(WES_TITLE, title);
contentValues.put(WES_DESC, desc);
contentValues.put(WES_IG, ig);
long checker = sqLiteDatabase.insert(WESTERN_TABLE, null, contentValues);
if (checker == -1) {
return false;
} else {
return true;
}
}
public boolean addtoSpicetable(String title) {
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(SPICE_TITLE, title);
long checker = sqLiteDatabase.insert(SPICE_TABLE, null, contentValues);
if (checker == -1) {
return false;
} else {
return true;
}
}
public boolean addtoMeattable(String title) {
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(MEAT_TITLE, title);
long checker = sqLiteDatabase.insert(MEAT_TABLE, null, contentValues);
if (checker == -1) {
return false;
} else {
return true;
}
}
public boolean addtoVeggietable(String title) {
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(VEGGIE_TITLE, title);
long checker = sqLiteDatabase.insert(VEGGIE_TABLE, null, contentValues);
if (checker == -1) {
return false;
} else {
return true;
}
}
//-------------------------------------------------------
//perform display listview to specific content----------
public Cursor displayChineseMenu() {
SQLiteDatabase sqLiteDatabase = getReadableDatabase();
Cursor res;
res = sqLiteDatabase.rawQuery("SELECT * FROM " + CHINESE_TABLE, null);
return res;
}
public Cursor displayJapaneseMenu() {
SQLiteDatabase sqLiteDatabase = getReadableDatabase();
Cursor res;
res = sqLiteDatabase.rawQuery("SELECT * FROM " + JAPANESE_TABLE, null);
return res;
}
public Cursor displayWesternMenu() {
SQLiteDatabase sqLiteDatabase = getReadableDatabase();
Cursor res;
res = sqLiteDatabase.rawQuery("SELECT * FROM " + WESTERN_TABLE, null);
return res;
}
public Cursor displaySpices() {
SQLiteDatabase sqLiteDatabase = getReadableDatabase();
Cursor res;
res = sqLiteDatabase.rawQuery("SELECT * FROM " + SPICE_TABLE, null);
return res;
}
public Cursor displayMeats() {
SQLiteDatabase sqLiteDatabase = getReadableDatabase();
Cursor res;
res = sqLiteDatabase.rawQuery("SELECT * FROM " + MEAT_TABLE, null);
return res;
}
public Cursor displayVeggies() {
SQLiteDatabase sqLiteDatabase = getReadableDatabase();
Cursor res;
res = sqLiteDatabase.rawQuery("SELECT * FROM " + VEGGIE_TABLE, null);
return res;
}
//-----------------------------------------------------
//perform delete function and remove item from database---------
public int deleteChineseData(String title){
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
return sqLiteDatabase.delete(CHINESE_TABLE, "CHI_TITLE = ?", new String[] {title});
}
public int deleteJapaneseData(String title){
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
return sqLiteDatabase.delete(JAPANESE_TABLE, "JAP_TITLE = ?", new String[] {title});
}
public int deleteWesternData(String title){
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
return sqLiteDatabase.delete(WESTERN_TABLE, "WES_TITLE = ?", new String[] {title});
}
public int deleteSpiceData(String title){
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
return sqLiteDatabase.delete(SPICE_TABLE, "SPICE_TITLE = ?", new String[] {title});
}
public int deleteMeatData(String title){
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
return sqLiteDatabase.delete(MEAT_TABLE, "MEAT_TITLE = ?", new String[] {title});
}
public int deleteVeggieData(String title){
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
return sqLiteDatabase.delete(VEGGIE_TABLE, "VEGGIE_TITLE = ?", new String[] {title});
}
//-----------------------------------------------------------------
//JOIN Table-----------------------------------------------------
/*public Cursor JoinCuisineTables(){
SQLiteDatabase sqLiteDatabase = getReadableDatabase();
Cursor res;
res = sqLiteDatabase.rawQuery("SELECT * FROM "
+ CHINESE_TABLE + " c "
+ " JOIN " + JAPANESE_TABLE + " j "
+ " ON c." + JAP_ID + " = j."
, null);
return res;
}*/
}