将sqlite数据库从pc复制到android?

将sqlite数据库从pc复制到android?,android,sqlite,Android,Sqlite,请问我如何在真正的android手机中使用数据库(我用Eclipse创建的,我用的是SDK)? 该应用程序运行良好,但当我需要从搜索栏访问数据库时,它就会崩溃。 我真的需要这个作为我明天的顶点 package com.nutriapp; import java.util.ArrayList; import java.util.Date; import org.achartengine.model.XYMultipleSeriesDataset; import org.achartengine

请问我如何在真正的android手机中使用数据库(我用Eclipse创建的,我用的是SDK)? 该应用程序运行良好,但当我需要从搜索栏访问数据库时,它就会崩溃。 我真的需要这个作为我明天的顶点

package com.nutriapp;

import java.util.ArrayList;
import java.util.Date;

import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
公共类数据库适配器{

public static final String COLUMN_ID = "ID";
public static final String COLUMN_NAME = "Name";
public static final String COLUMN_AGE = "Age";
public static final String COLUMN_GENDER = "Gender";
public static final String COLUMN_WEIGHT = "Weight";
public static final String COLUMN_HEIGHT = "Height";
public static final String COLUMN_ACTIVITY = "Activitylevel";
public static final String COLUMN_CALORIES = "numCal";
public static final String FOOD_ID = "food_ID";
public static final String FOOD_NAME = "food_name";
public static final String FOOD_CALS = "food_cals";
public static final String FOOD_FAT = "food_fat";
public static final String FOOD_PRO = "food_protein";
public static final String FOOD_CRAB = "food_crabs";
public static final String EXERCISE_NAME = "exercise_name";
public static final String EXERCISE_CALS = "exercise_cals";
public static final String EXERCISE_ID = "exercise_ID";
public static final String DAILY_ID = "daily_ID";
public static final String DAILY_DATE = "daily_date";
public static final String DAILY_FAT = "daily_fat";
public static final String DAILY_PROTS = "daily_protein";
public static final String DAILY_CARBS = "daily_carb";
public static final String DAILY_BFITEMS = "daily_breakfast";
public static final String DAILY_LNITEMS = "daily_lunch";
public static final String DAILY_DNITEMS = "daily_dinner";
public static final String DAILY_EXERCISE = "daily_exercise";

public static final String TABLE_DAILYSTATS = "dailystats";
public static final String TABLE_USERS = "users";
public static final String TABLE_FOOD = "food";
public static final String TABLE_EXERCISE = "exercise";
private static final int DATABASE_VERSION = 10;
private static final String DATABASE_NAME = "nutriwellness.db";

private static final String CREATE_TABLE_USERS = "create table users( id integer primary key autoincrement, "
        + "Name text, Age integer, Gender text, Weight text, Height text, Activitylevel text, numCal float );";

private static final String CREATE_TABLE_FOOD = "create table food( food_ID integer primary key,"
        + "food_name text,food_cals real, food_fat real, food_protein real, food_crabs real );";

private static final String CREATE_TABLE_EXERCISE = "create table exercise( exercise_ID integer primary key,"
        + "exercise_name text,exercise_cals real );";

private static final String CREATE_TABLE_DAILYSTATS = "create table dailystats( daily_ID integer primary key autoincrement,"
        + "daily_date text, daily_fat real, daily_protein real, daily_carb real, daily_breakfast text, daily_lunch text, daily_dinner text, daily_exercise text, ID integer );";

private SQLiteDatabase database;
private DatabaseHelper dbHelper;

private String[] allColumnsofuserstable = { COLUMN_ID, COLUMN_NAME,
        COLUMN_AGE, COLUMN_GENDER, COLUMN_WEIGHT, COLUMN_HEIGHT,
        COLUMN_CALORIES };

private String[] allColumnoffoodtable = { FOOD_ID, FOOD_NAME, FOOD_FAT,
        FOOD_PRO, FOOD_CRAB };
private String[] allColumnofexercisetable = { EXERCISE_ID, EXERCISE_NAME,
        EXERCISE_CALS };

private String[] allColumnofdailytable = { DAILY_ID, DAILY_FAT,
        DAILY_PROTS, DAILY_CARBS, DAILY_EXERCISE };

public DatabaseAdapter(Context context) {

    dbHelper = new DatabaseHelper(context);
}

public static class DatabaseHelper extends SQLiteOpenHelper {

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 18);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        try {
            // db.execSQL(CREATE_TABLE_USERS);
            // db.execSQL(CREATE_TABLE_FOOD);
            // db.execSQL(CREATE_TABLE_EXERCISE);
            db.execSQL(CREATE_TABLE_DAILYSTATS);
        } catch (SQLException e) {
            // e.printStackTrace();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(DatabaseHelper.class.getName(),
                "Upgrading database from version " + oldVersion
                        + "to version " + newVersion);

        // db.execSQL("DROP TABLE IF EXISTS users");
        // db.execSQL("DROP TABLE IF EXISTS food");
        // db.execSQL("DROP TABLE IF EXISTS exercise");
        db.execSQL("DROP TABLE IF EXISTS dailystats");

        onCreate(db);

    }

}

public float sumCalories(String[] items) {
    float sum = .0f;
    for (int i = 0; i < items.length; i++) {
        Cursor c = database.rawQuery(
                "select food_cals from food where food_name='" + items[i]
                        + "'", null);
        c.moveToFirst();
        while (!c.isAfterLast()) {
            sum += c.getFloat(0);
            c.moveToNext();
        }
    }
    return sum;
}

public float sumProteins(String[] items) {
    float sum = .0f;
    for (int i = 0; i < items.length; i++) {
        Cursor c = database.rawQuery(
                "select food_protein from food where food_name='"
                        + items[i] + "'", null);
        c.moveToFirst();
        while (!c.isAfterLast()) {
            sum += c.getFloat(0);
            c.moveToNext();
        }
    }
    return sum;
}

public float sumFat(String[] items) {
    float sum = .0f;
    for (int i = 0; i < items.length; i++) {
        Cursor c = database.rawQuery(
                "select food_fat from food where food_name='" + items[i]
                        + "'", null);
        c.moveToFirst();
        while (!c.isAfterLast()) {
            sum += c.getFloat(0);
            c.moveToNext();
        }
    }
    return sum;
}

public float sumCarbs(String[] items) {
    float sum = .0f;
    for (int i = 0; i < items.length; i++) {
        Cursor c = database.rawQuery(
                "select food_crabs from food where food_name='" + items[i]
                        + "'", null);
        c.moveToFirst();
        while (!c.isAfterLast()) {
            sum += c.getFloat(0);
            c.moveToNext();
        }
    }
    return sum;
}

public float sumBurned(String[] items) {
    float sum = .0f;
    for (int i = 0; i < items.length; i++) {
        Cursor c = database.rawQuery(
                "select exercise_cals from exercise where exercise_name='"
                        + items[i] + "'", null);
        c.moveToFirst();
        while (!c.isAfterLast()) {
            sum += c.getFloat(0);
            c.moveToNext();
        }
    }
    return sum;
}

// //////////////////////////// FOR STORING IN DAILY TABLE
public long saveDayStatistics(float fat, float protein, float carbs,
        String breakfast, String lunch, String dinner, String exercise) {
    Date now = new Date();

    ContentValues values = new ContentValues();
    values.put("daily_date", now.toString());
    values.put("daily_fat", fat);
    values.put("daily_protein", protein);
    values.put("daily_carb", carbs);
    values.put("daily_breakfast", breakfast);
    values.put("daily_lunch", lunch);
    values.put("daily_dinner", dinner);
    values.put("daily_exercise", exercise);

    return database.insert(TABLE_DAILYSTATS, DAILY_DATE, values);

}

public DatabaseAdapter open() throws SQLException {
    database = dbHelper.getWritableDatabase();
    return this;
}

public void close() {
    dbHelper.close();
}

// create a user
public long createUser(String name, String age, String gender,
        String weight, String height, String level, float calnum) {

    ContentValues values = new ContentValues();
    values.put(COLUMN_NAME, name);
    values.put(COLUMN_AGE, age);

    values.put(COLUMN_GENDER, gender);

    values.put(COLUMN_WEIGHT, weight);
    values.put(COLUMN_HEIGHT, height);
    values.put(COLUMN_ACTIVITY, level);
    values.put(COLUMN_CALORIES, calnum);

    return database.insert(TABLE_USERS, COLUMN_ID, values);
}

// delete a user by ID
public boolean deleteUser(long rowId) {
    return database.delete(TABLE_USERS, COLUMN_ID + "=" + rowId, null) > 0;
}

// retrieve a list of all users
public Cursor getAllUsers() {
    return database.query(TABLE_USERS, allColumnsofuserstable, null, null,
            null, null, null);

}

// retrieve a particular user
public Cursor getUser(long rowId) throws SQLException {
    Cursor mCursor = database.query(true, TABLE_USERS,
            allColumnsofuserstable, COLUMN_ID + "=" + rowId, null, null,
            null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;

}

// update a user
public boolean updateUser(long rowId, String Name, int age, String gender,
        String weight, String height, String level, float calnum) {
    ContentValues values = new ContentValues();
    values.put(COLUMN_NAME, Name);
    values.put(COLUMN_AGE, age);

    values.put(COLUMN_GENDER, gender);

    values.put(COLUMN_WEIGHT, weight);
    values.put(COLUMN_HEIGHT, height);
    values.put(COLUMN_ACTIVITY, level);
    values.put(COLUMN_CALORIES, calnum);
    return database.update(TABLE_USERS, values, COLUMN_ID + "=" + rowId,
            null) > 0;
}

// FOOD METHODS !

// Create a new food row
public long createFood(String name, double food_cal, double food_fat,
        double food_proteins, double food_carbs) {
    ContentValues Fvalues = new ContentValues();
    Fvalues.put(FOOD_NAME, name);
    Fvalues.put(FOOD_CALS, food_cal);
    Fvalues.put(FOOD_FAT, food_fat);
    Fvalues.put(FOOD_PRO, food_proteins);
    Fvalues.put(FOOD_CRAB, food_carbs);
    return database.insert(TABLE_FOOD, FOOD_ID, Fvalues);
}

// delete a Food by ID
public boolean deleteFood(long rowId) {
    return database.delete(TABLE_FOOD, FOOD_ID + "=" + rowId, null) > 0;
}

// retrieve a list of all FOOD
public ArrayList<String> getAllfood() {
    Cursor c = database.query(TABLE_FOOD, allColumnoffoodtable, null, null,
            null, null, null);
    ArrayList<String> food = new ArrayList<String>();

    c.moveToFirst();
    while (!c.isAfterLast()) {
        food.add(c.getString(1));
        c.moveToNext();
    }

    return food;

}

// Retrieve a specific Food

public Cursor getFood(long rowId) throws SQLException {
    Cursor mCursor = database.query(true, TABLE_FOOD, allColumnoffoodtable,
            FOOD_ID + "=" + rowId, null, null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;

}

// Update a food

public boolean updateFood(long rowId, String name, int food_cal,
        int food_fat, int food_proteins, int food_carbs) {
    ContentValues Fvalues = new ContentValues();
    Fvalues.put(FOOD_NAME, name);
    Fvalues.put(FOOD_CALS, food_cal);
    Fvalues.put(FOOD_FAT, food_fat);
    Fvalues.put(FOOD_PRO, food_proteins);
    Fvalues.put(FOOD_CRAB, food_carbs);
    return database
            .update(TABLE_FOOD, Fvalues, FOOD_ID + "=" + rowId, null) > 0;
}

// //////////////////////////////// EXERCISE
// TABLE///////////////////////////////////////////////////

public long createExercise(String name, double exercise_cals) {
    ContentValues Fvalues = new ContentValues();
    Fvalues.put(EXERCISE_NAME, name);
    Fvalues.put(EXERCISE_CALS, exercise_cals);

    return database.insert(TABLE_EXERCISE, EXERCISE_ID, Fvalues);
}

public Cursor getExercise(long rowId) throws SQLException {
    Cursor mCursor = database.query(true, TABLE_EXERCISE,
            allColumnofexercisetable, EXERCISE_ID + "=" + rowId, null,
            null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;

}

public ArrayList<String> getAllexercise() {
    Cursor c = database.query(TABLE_EXERCISE, allColumnofexercisetable,
            null, null, null, null, null);
    ArrayList<String> exercise = new ArrayList<String>();

    c.moveToFirst();
    while (!c.isAfterLast()) {
        exercise.add(c.getString(1));
        c.moveToNext();
    }

    return exercise;

}

public boolean deleteexercise(long rowId) {
    return database.delete(TABLE_EXERCISE, EXERCISE_ID + "=" + rowId, null) > 0;
}

public XYMultipleSeriesDataset getFatDataset() {

    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    Cursor c = database.rawQuery(
            "select * from dailystats order by daily_ID desc LIMIT 7;",
            null);
    float i = 1.0f;

    c.moveToFirst();
    XYSeries seriesFat = new XYSeries("Fat");
    while (!c.isAfterLast()) {
        seriesFat.add(i++, c.getDouble(2));

        c.moveToNext();
    }
    dataset.addSeries(seriesFat);
    return dataset;
}

public XYMultipleSeriesDataset getProtDataset() {

    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    Cursor c = database.rawQuery(
            "select * from dailystats order by daily_ID desc LIMIT 7;",
            null);

    float i = 1.0f;
    c.moveToFirst();
    XYSeries seriesProtein = new XYSeries("Protein");
    while (!c.isAfterLast()) {

        seriesProtein.add(i++, c.getDouble(3));

        c.moveToNext();
    }
    dataset.addSeries(seriesProtein);
    return dataset;

}

public XYMultipleSeriesDataset getCarbsDataset() {
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    Cursor c = database.rawQuery(
            "select * from dailystats order by daily_ID desc LIMIT 7;",
            null);
    float i = 1.0f;

    c.moveToFirst();
    XYSeries seriesCarbs = new XYSeries("Carbs");
    while (!c.isAfterLast()) {

        seriesCarbs.add(i++, c.getDouble(4));

        c.moveToNext();
    }
    dataset.addSeries(seriesCarbs);
    return dataset;
}

public void clearDailyStats() {
     database.execSQL("delete from dailystats");
     Log.d("db", "lol");
}
公共静态最终字符串列\u ID=“ID”;
公共静态最终字符串列\u NAME=“NAME”;
公共静态最终字符串列_AGE=“AGE”;
公共静态最终字符串列\u GENDER=“GENDER”;
公共静态最终字符串列\u WEIGHT=“WEIGHT”;
公共静态最终字符串列\u HEIGHT=“HEIGHT”;
公共静态最终字符串列\u ACTIVITY=“Activitylevel”;
公共静态最终字符串列\u=“numCal”;
公共静态最终字符串FOOD\u ID=“FOOD\u ID”;
公共静态最终字符串FOOD\u NAME=“FOOD\u NAME”;
公共静态最终字符串FOOD\u CALS=“FOOD\u CALS”;
公共静态最终字符串FOOD\u FAT=“FOOD\u FAT”;
公共静态最终字符串FOOD\u PRO=“FOOD\u protein”;
公共静态最终字符串FOOD\u CRAB=“FOOD\u crabs”;
公共静态最终字符串EXERCISE\u NAME=“EXERCISE\u NAME”;
公共静态最终字符串EXERCISE\u CALS=“EXERCISE\u CALS”;
公共静态最终字符串EXERCISE\u ID=“EXERCISE\u ID”;
公共静态最终字符串DAILY\u ID=“DAILY\u ID”;
公共静态最终字符串DAILY\u DATE=“DAILY\u DATE”;
公共静态最终字符串DAILY\u FAT=“DAILY\u FAT”;
公共静态最终字符串DAILY\u PROTS=“DAILY\u protein”;
公共静态最终字符串DAILY\u CARBS=“DAILY\u carb”;
公共静态最终字符串DAILY\u BFITEMS=“DAILY\u早餐”;
公共静态最终字符串DAILY\u LNITEMS=“DAILY\u午餐”;
公共静态最终字符串DAILY\u DNITEMS=“DAILY\u晚餐”;
公共静态最终字符串DAILY\u EXERCISE=“DAILY\u EXERCISE”;
公共静态最终字符串表\u DAILYSTATS=“DAILYSTATS”;
公共静态最终字符串表\u USERS=“USERS”;
公共静态最终字符串表\u FOOD=“FOOD”;
公共静态最终字符串表\u EXERCISE=“EXERCISE”;
私有静态最终int数据库_版本=10;
私有静态最终字符串数据库\u NAME=“nutriwellness.db”;
私有静态最终字符串CREATE\u TABLE\u USERS=“CREATE TABLE USERS(id integer主键自动递增,”
+“名称文本、年龄整数、性别文本、重量文本、高度文本、活动级别文本、数值浮动);”;
私有静态最终字符串CREATE\u TABLE\u FOOD=“CREATE TABLE FOOD(FOOD\u ID整数主键,”
+“食品名称文字、食品卡真实、食品脂肪真实、食品蛋白质真实、食品螃蟹真实);”;
私有静态最终字符串CREATE\u TABLE\u EXERCISE=“CREATE TABLE EXERCISE(EXERCISE\u ID integer主键,”
+“练习_name text,练习_cals real);”;
私有静态最终字符串CREATE\u TABLE\u DAILYSTATS=“CREATE TABLE DAILYSTATS(daily\u ID整数主键自动递增,”
+“每日日期文本、每日脂肪文本、每日蛋白质文本、每日碳水化合物文本、每日早餐文本、每日午餐文本、每日晚餐文本、每日运动文本、ID整数);”;
专用数据库;
私有数据库助手dbHelper;
私有字符串[]allColumnsofuserstable={COLUMN\u ID,COLUMN\u NAME,
列队年龄、列队性别、列队重量、列队高度、,
_}列;
私有字符串[]allColumnoffoodtable={FOOD\u ID,FOOD\u NAME,FOOD\u FAT,
食物亲,食物蟹};
私有字符串[]allColumnofexercisetable={EXERCISE\u ID,EXERCISE\u NAME,
练习};
私有字符串[]allColumnofdailytable={DAILY\u ID,DAILY\u FAT,
每日运动、每日碳水化合物、每日运动};
公共数据库适配器(上下文){
dbHelper=新数据库助手(上下文);
}
公共静态类DatabaseHelper扩展了SQLiteOpenHelper{
公共数据库助手(上下文){
super(上下文,数据库名称,null,18);
}
@凌驾
public void onCreate(SQLiteDatabase db){
试一试{
//execSQL(创建表用户);
//db.execSQL(创建食物表);
//execSQL(创建表);
execSQL(创建表和日常状态);
}捕获(SQLE异常){
//e.printStackTrace();
}
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
Log.w(DatabaseHelper.class.getName(),
“从版本升级数据库”+旧版本
+“至版本”+新版本);
//db.execSQL(“如果存在用户,则删除表”);
//db.execSQL(“如果存在,则删除表”);
//db.execSQL(“如果存在,则删除表”);
execSQL(“如果存在dailystats,则删除表”);
onCreate(db);
}
}
公共浮点数(字符串[]项){
浮动总和=.0f;
对于(int i=0;ipublic float sumProteins(String[] items) {
    float sum = .0f;
    for (int i = 0; i < items.length; i++) {
        Cursor c = database.rawQuery(
                "select SUM(food_protein) from food where food_name='"
                        + items[i] + "'", null);
        if (c.moveToFirst()) {
            sum += c.getFloat(0);
        }
    }
    return sum;
}