Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLite数据库:第二个表不会添加新产品_Android_Sqlite - Fatal编程技术网

Android SQLite数据库:第二个表不会添加新产品

Android SQLite数据库:第二个表不会添加新产品,android,sqlite,Android,Sqlite,我正在做一个项目,我有两个表,一个存储应用程序的用户,另一个存储用户输入的产品。用户表工作正常,但是当我查看我的日志时,我发现没有产品被输入到产品表中。数据库处理程序中的addproduct方法没有错误,所以我想知道我做错了什么?问题是在databasehandler中还是在我添加产品的方式中?如果有任何帮助,我们将不胜感激? 数据库处理程序代码: import java.util.ArrayList; import java.util.List; import android.conten

我正在做一个项目,我有两个表,一个存储应用程序的用户,另一个存储用户输入的产品。用户表工作正常,但是当我查看我的日志时,我发现没有产品被输入到产品表中。数据库处理程序中的addproduct方法没有错误,所以我想知道我做错了什么?问题是在databasehandler中还是在我添加产品的方式中?如果有任何帮助,我们将不胜感激? 数据库处理程序代码:

 import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.example.john.fitnessapp.Products;
import com.example.john.fitnessapp.Users;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;


public class DatabaseHandler extends SQLiteOpenHelper {
    public static final String TAG = "DBHelper";
    //DATABASE VERSION
    private static int DATABASE_VERSION = 1;
    //DATABASE NAME
    private static final String DATABASE_NAME = "AppDatabase";
    //TABLE NAMES
    private static final String TABLE_USERS = "Users_Table";
    private static final String TABLE_PRODUCTS = "Products_Table";
    //COMMON COLUMN NAMES
    private static final String KEY_USER_ID = "User_ID";
    private static final String KEY_PRODUCT_ID = "Product_ID";
    //USER TABLE
    private static final String KEY_USERNAME = "Username";
    private static final String KEY_PASSWORD = "Password";
    private static final String KEY_AGE = "Age";
    private static final String KEY_EMAIL = "Email";
    private static final String KEY_GENDER = "Gender";
    private static final String KEY_HEIGHT = "Height";
    private static final String KEY_CURRENT_WEIGHT = "Current_Weight";
    private static final String KEY_START_WEIGHT = "Start_Weight";
    private static final String KEY_WEIGHT_CHANGE = "Weight_Change";
    private static final String KEY_BMI = "BMI";
    private static final String KEY_BMR = "BMR";
    private static final String KEY_REQ_CAL = "Required_Calories";
    private static final String KEY_MON_CAL = "Monday_Calories";
    private static final String KEY_TUES_CAL = "Tuesday_Calories";
    private static final String KEY_WED_CAL = "Wednesday_Calories";
    private static final String KEY_THUR_CAL = "Thursday_Calories";
    private static final String KEY_FRI_CAL = "Friday_Calories";
    private static final String KEY_SAT_CAL = "Saturday_Calories";
    private static final String KEY_SUN_CAL = "Sunday_Calories";
    //PRODUCT TABLE
    private static final String KEY_ITEMNAME = "Item_name";
    private static final String KEY_ITEMCALORIES = "Item_Calories";
    //
    private static final String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_USERS + "( "
            + KEY_USER_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + KEY_USERNAME + " TEXT, "
            + KEY_PASSWORD + " TEXT, "
            + KEY_AGE + " INTEGER, "
            + KEY_EMAIL + " TEXT, "
            + KEY_GENDER + " TEXT, "
            + KEY_HEIGHT + " DOUBLE, "
            + KEY_START_WEIGHT + " DOUBLE, "
            + KEY_CURRENT_WEIGHT + " DOUBLE, "
            + KEY_WEIGHT_CHANGE + " DOUBLE, "
            + KEY_BMI + " DOUBLE, "
            + KEY_BMR + " DOUBLE, "
            + KEY_REQ_CAL + " DOUBLE, "
            + KEY_MON_CAL + " DOUBLE, "
            + KEY_TUES_CAL + " DOUBLE, "
            + KEY_WED_CAL + " DOUBLE, "
            + KEY_THUR_CAL + " DOUBLE, "
            + KEY_FRI_CAL + " DOUBLE, "
            + KEY_SAT_CAL + " DOUBLE, "
            + KEY_SUN_CAL + " DOUBLE ); ";

    private static final String CREATE_PRODUCT_TABLE = "CREATE TABLE " + TABLE_PRODUCTS + "( " + KEY_PRODUCT_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + KEY_ITEMNAME + " TEXT, "
            + KEY_ITEMCALORIES + " DOUBLE );";

    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);

    }

    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_USER_TABLE);
        db.execSQL(CREATE_PRODUCT_TABLE);
    }

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(TAG,
                "Upgrading the database from version " + oldVersion + " to " + newVersion);
        DATABASE_VERSION = 2;
        db.execSQL("DROP TABLE IF IT EXISTS " + TABLE_USERS);
        db.execSQL("DROP TABLE IF IT EXISTS " + TABLE_PRODUCTS);
        onCreate(db);

    }

    //CRUD OPERATIONS

    public Users getUser(int id) {
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.query(TABLE_USERS,
                new String[]{KEY_USER_ID, KEY_USERNAME, KEY_PASSWORD, KEY_AGE,
                        KEY_EMAIL, KEY_GENDER, KEY_HEIGHT, KEY_START_WEIGHT,
                        KEY_CURRENT_WEIGHT, KEY_WEIGHT_CHANGE, KEY_BMI, KEY_BMR,
                        KEY_REQ_CAL, KEY_MON_CAL, KEY_TUES_CAL, KEY_WED_CAL,
                        KEY_THUR_CAL, KEY_FRI_CAL, KEY_SAT_CAL, KEY_SUN_CAL},
                KEY_USER_ID + "=?",
                new String[]{String.valueOf(id)}, null, null, null, null);
        if (cursor != null && cursor.getCount() > 0)
            cursor.moveToFirst();

        Users users = new Users(Integer.parseInt(cursor.getString(0)), cursor.getString(1),
                cursor.getString(2), cursor.getInt(3), cursor.getString(4), cursor.getString(5),
                cursor.getDouble(6), cursor.getDouble(7), cursor.getDouble(8), cursor.getDouble(9),
                cursor.getDouble(10), cursor.getDouble(11), cursor.getDouble(12), cursor.getDouble(13),
                cursor.getDouble(14), cursor.getDouble(15), cursor.getDouble(16), cursor.getDouble(17), cursor.getDouble(18), cursor.getDouble(19));
        cursor.close();
        return users;

    }

    public void addUser(Users users) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(KEY_USERNAME, users.get_username());
        values.put(KEY_PASSWORD, users.get_password());
        values.put(KEY_AGE, users.get_age());
        values.put(KEY_EMAIL, users.get_email());
        values.put(KEY_GENDER, users.get_gender());
        values.put(KEY_HEIGHT, users.get_height());
        values.put(KEY_START_WEIGHT, users.get_startWeight());
        values.put(KEY_CURRENT_WEIGHT, users.get_currentWeight());
        values.put(KEY_WEIGHT_CHANGE, users.get_weightChange());
        values.put(KEY_BMI, users.get_BMI());
        values.put(KEY_BMR, users.get_BMR());
        values.put(KEY_REQ_CAL, users.get_reqCal());
        values.put(KEY_MON_CAL, users.get_monCal());
        values.put(KEY_TUES_CAL, users.get_tuesCal());
        values.put(KEY_WED_CAL, users.get_wedCal());
        values.put(KEY_THUR_CAL, users.get_thurCal());
        values.put(KEY_FRI_CAL, users.get_friCal());
        values.put(KEY_SAT_CAL, users.get_satCal());
        values.put(KEY_SUN_CAL, users.get_sunCal());

        db.insert(TABLE_USERS, null, values);
        db.close();
    }

    public int getUserCount() {
        String countQuery = "SELECT * FROM " + TABLE_USERS;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(countQuery, null);
        int count = cursor.getCount();
        cursor.close();
        return count;

    }

    public int updateUser(Users users) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(KEY_USERNAME, users.get_username());
        values.put(KEY_PASSWORD, users.get_password());
        values.put(KEY_AGE, users.get_age());
        values.put(KEY_EMAIL, users.get_email());
        values.put(KEY_GENDER, users.get_gender());
        values.put(KEY_HEIGHT, users.get_height());
        values.put(KEY_START_WEIGHT, users.get_startWeight());
        values.put(KEY_CURRENT_WEIGHT, users.get_currentWeight());
        values.put(KEY_WEIGHT_CHANGE, users.get_weightChange());
        values.put(KEY_BMI, users.get_BMI());
        values.put(KEY_BMR, users.get_BMR());
        values.put(KEY_REQ_CAL, users.get_reqCal());
        values.put(KEY_MON_CAL, users.get_monCal());
        values.put(KEY_TUES_CAL, users.get_tuesCal());
        values.put(KEY_WED_CAL, users.get_wedCal());
        values.put(KEY_THUR_CAL, users.get_thurCal());
        values.put(KEY_FRI_CAL, users.get_friCal());
        values.put(KEY_SAT_CAL, users.get_satCal());
        values.put(KEY_SUN_CAL, users.get_sunCal());

        return db.update(TABLE_USERS, values, KEY_USER_ID + " = ?",
                new String[]{String.valueOf(users.get_id())});
    }

    public List<Users> getallUsers() {
        List<Users> usersList = new ArrayList<Users>();
        String selectQuery = "SELECT * FROM " + TABLE_USERS;
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        if (cursor.moveToFirst()) {
            do {
                Users users = new Users();
                users.set_id(Integer.parseInt(cursor.getString(0)));
                users.set_username(cursor.getString(1));
                users.set_password(cursor.getString(2));
                users.set_age(cursor.getInt(3));
                users.set_email(cursor.getString(4));
                users.set_gender(cursor.getString(5));
                users.set_height(cursor.getDouble(6));
                users.set_startWeight(cursor.getDouble(7));
                users.set_currentWeight(cursor.getDouble(8));
                users.set_weightChange();
                users.set_BMI(cursor.getDouble(10));
                users.set_BMR(cursor.getDouble(11));
                users.set_reqCal(cursor.getDouble(12));
                users.set_monCal(cursor.getDouble(13));
                users.set_tuesCal(cursor.getDouble(14));
                users.set_wedCal(cursor.getDouble(15));
                users.set_thurCal(cursor.getDouble(16));
                users.set_friCal(cursor.getDouble(17));
                users.set_satCal(cursor.getDouble(18));
                users.set_sunCal(cursor.getDouble(19));
                usersList.add(users);
            } while (cursor.moveToNext());
        }
        return usersList;
       }




 public List<Products> getallProducts(){
    ArrayList<Products> productList = new ArrayList<Products>();
    String selectQuery = "SELECT * FROM " + TABLE_PRODUCTS;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    if(cursor.moveToFirst()){
        do {
            Products products = new Products();
            products.set_id(cursor.getInt(0));
            products.set_itemName(cursor.getString(1));
            products.set_itemCalorie(cursor.getDouble(2));
        }while (cursor.moveToNext());
    }
    cursor.close();
    return productList;

}

public void addProduct(Products products){
    SQLiteDatabase db = getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(KEY_ITEMNAME, products.get_itemName());
    values.put(KEY_ITEMCALORIES, products.get_itemCalorie());

    db.insert(TABLE_PRODUCTS, null, values);
    db.close();
}
public int getProductCount(){
    String countQuery = "SELECT * FROM " + TABLE_PRODUCTS;
    SQLiteDatabase db = getReadableDatabase();
    Cursor cursor = db.rawQuery(countQuery, null);
    int count = cursor.getCount();
    cursor.close();
    return count;
}
import java.util.ArrayList;
导入java.util.List;
导入android.content.ContentValues;
导入android.content.Context;
导入android.database.Cursor;
导入android.database.sqlite.SQLiteDatabase;
导入com.example.john.fitnessapp.Products;
导入com.example.john.fitnessapp.Users;
导入android.database.sqlite.SQLiteOpenHelper;
导入android.util.Log;
公共类DatabaseHandler扩展了SQLiteOpenHelper{
公共静态最终字符串TAG=“DBHelper”;
//数据库版本
私有静态int数据库_VERSION=1;
//数据库名称
私有静态最终字符串数据库\u NAME=“AppDatabase”;
//表名
私有静态最终字符串表\u USERS=“USERS\u TABLE”;
私有静态最终字符串表\u PRODUCTS=“PRODUCTS\u TABLE”;
//常用列名
私有静态最终字符串密钥\u USER\u ID=“USER\u ID”;
私有静态最终字符串密钥\u PRODUCT\u ID=“PRODUCT\u ID”;
//用户表
私有静态最终字符串密钥\u USERNAME=“USERNAME”;
私有静态最终字符串密钥\u PASSWORD=“PASSWORD”;
私有静态最终字符串密钥\u AGE=“AGE”;
私有静态最终字符串密钥\u EMAIL=“EMAIL”;
私有静态最终字符串键\u GENDER=“GENDER”;
专用静态最终字符串键\u HEIGHT=“HEIGHT”;
私有静态最终字符串键\u CURRENT\u WEIGHT=“CURRENT\u WEIGHT”;
私有静态最终字符串键\u START\u WEIGHT=“START\u WEIGHT”;
私有静态最终字符串键\u WEIGHT\u CHANGE=“WEIGHT\u CHANGE”;
私有静态最终字符串密钥\u BMI=“BMI”;
私有静态最终字符串密钥\u BMR=“BMR”;
私有静态最终字符串键\u REQ\u CAL=“必需的\u卡路里”;
私有静态最终字符串键\u MON\u CAL=“周一热量”;
私有静态最终字符串键\u TUES\u CAL=“星期二\u卡路里”;
私有静态最终字符串键\u WED\u CAL=“星期三热量”;
私有静态最终字符串键\u THUR\u CAL=“星期四”;
私有静态最终字符串键\u FRI\u CAL=“星期五热量”;
私有静态最终字符串键\u SAT\u CAL=“星期六热量”;
私有静态最终字符串键\u SUN\u CAL=“Sunday\u carries”;
//产品表
私有静态最终字符串键\u ITEMNAME=“Item\u name”;
私有静态最终字符串键\u itemCarries=“Item\u carries”;
//
私有静态最终字符串CREATE_USER_TABLE=“CREATE TABLE”+TABLE_USERS+”(“
+KEY\u USER\u ID+“整数主键自动递增,”
+键\用户名+“文本,”
+密钥\u密码+“文本,”
+键+整数,“
+密钥_电子邮件+“文本,”
+键_性别+“文本,”
+按键高度+DOUBLE
+按键\开始\重量+“双”
+按键\当前\重量+“双”
+按键_重量_变化+“加倍,”
+键+双倍体质量指数
+按键\u BMR+“双”
+按键要求校准+“双”
+按键_MON_CAL+“DOUBLE,”
+按键“星期二”+“双”
+按键_WED_CAL+“DOUBLE,”
+按键四加一“双”
+按键“FRI\u CAL+“DOUBLE”
+“双精度”键
+按键_SUN_CAL+“DOUBLE);”;
私有静态最终字符串CREATE_PRODUCT_TABLE=“CREATE TABLE”+TABLE_PRODUCTS+”(“+KEY_PRODUCT_ID+”整数主键自动递增,”
+键\u ITEMNAME+“文本,”
+键+双“;”;
公共数据库处理程序(上下文){
super(上下文、数据库名称、null、数据库版本);
}
public void onCreate(SQLiteDatabase db){
execSQL(创建用户表);
db.execSQL(创建产品表);
}
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
Log.w(标签,
“将数据库从版本“+oldVersion+”升级到“+newVersion”);
数据库_版本=2;
db.execSQL(“如果存在,则删除表”+表用户);
db.execSQL(“如果存在,则删除表”+表_产品);
onCreate(db);
}
//积垢作业
公共用户getUser(int-id){
SQLiteDatabase db=this.getReadableDatabase();
Cursor=db.query(表用户,
新字符串[]{KEY_USER_ID,KEY_用户名,KEY_密码,KEY_年龄,
电子邮件、性别、身高、体重、,
关键体重、关键体重变化、关键体重指数、关键BMR、,
钥匙需要,钥匙MON,钥匙TUES,钥匙WED,
星期四,星期五,星期六,星期日,
密钥用户ID+“=?”,
新字符串[]{String.valueOf(id)},null,null,null,null);
if(cursor!=null&&cursor.getCount()>0)
cursor.moveToFirst();
Users Users=新用户(Integer.parseInt(cursor.getString(0)),cursor.getString(1),
cursor.getString(2)、cursor.getInt(3)、cursor.getString(4)、cursor.getString(5),
cursor.getDouble(6)、cursor.getDouble(7)、cursor.getDouble(8)、cursor.getDouble(9),
cursor.getDouble(10)、cursor.getDouble(11)、cursor.getDouble(12)、cursor.getDouble(13),
cursor.getDouble(14)、cursor.getDouble(15)、cursor.getDouble(16)、cursor.getDouble(17)、cursor.getDouble(18)、cursor.getDouble(19));
cursor.close();
返回用户;
}
公共void addUser(用户){
public List<Products> getallProducts() {
        ArrayList<Products> productList = new ArrayList<Products>();
        String selectQuery = "SELECT * FROM " + TABLE_PRODUCTS;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);
        if (cursor.moveToFirst()) {
            do {
                Products products = new Products();
                products.set_id(cursor.getInt(0));
                products.set_itemName(cursor.getString(1));
                products.set_itemCalorie(cursor.getDouble(2));
            } while (cursor.moveToNext());
        }
        cursor.close();
        return productList;

    }