Android 未在Sqlite中创建表
我已经在我现有的数据库中创建了一个名为“exercise”的新表,另外两个表food和users是正常创建的,但是在使用SqliteDatabase浏览器时,我看不到表exercise。我已经升级了数据库的版本,并确保创建_表的方式正确,但是没有任何问题,您能帮我找出为什么不创建该表吗Android 未在Sqlite中创建表,android,sqlite,Android,Sqlite,我已经在我现有的数据库中创建了一个名为“exercise”的新表,另外两个表food和users是正常创建的,但是在使用SqliteDatabase浏览器时,我看不到表exercise。我已经升级了数据库的版本,并确保创建_表的方式正确,但是没有任何问题,您能帮我找出为什么不创建该表吗 public class DatabaseAdapter { public static final String COLUMN_ID = "ID"; public static final String CO
public class DatabaseAdapter {
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 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 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 };
public DatabaseAdapter(Context context) {
dbHelper = new DatabaseHelper(context);
}
public static class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 12);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(CREATE_TABLE_USERS);
db.execSQL(CREATE_TABLE_FOOD);
db.execSQL(CREATE_TABLE_EXERCISE);
} 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");
onCreate(db);
}
}
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;
}
公共类数据库适配器{
公共静态最终字符串列\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”;
公共静态最终字符串表\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);”;
专用数据库;
私有数据库助手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,
练习};
公共数据库适配器(上下文){
dbHelper=新数据库助手(上下文);
}
公共静态类DatabaseHelper扩展了SQLiteOpenHelper{
公共数据库助手(上下文){
super(上下文,数据库名称,null,12);
}
@凌驾
public void onCreate(SQLiteDatabase db){
试一试{
execSQL(创建表用户);
db.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(“DROP_TABLE IF EXISTS exercise”);
onCreate(db);
}
}
公共数据库适配器open()引发SQLException{
database=dbHelper.getWritableDatabase();
归还这个;
}
公众假期结束(){
dbHelper.close();
}
//创建用户
public long createUser(字符串名称、字符串年龄、字符串性别、,
管柱重量、管柱高度、管柱标高、浮点数){
ContentValues=新的ContentValues();
value.put(列名称、名称);
值。put(列\年龄,年龄);
价值观。put(列_性别,性别);
值。放置(列\重量,重量);
值。放置(列的高度、高度);
值。put(列\活动,级别);
数值。put(热量列,calnum);
返回database.insert(表用户、列ID、值);
}
//按ID删除用户
公共布尔deleteUser(长rowId){
返回数据库.delete(表用户,列ID+“=”+rowId,null)>0;
}
//检索所有用户的列表
公共游标getAllUsers(){
返回database.query(TABLE_USERS,allColumnsofuserstable,null,null,
空,空,空);
}
//检索特定用户
公共游标getUser(长rowId)引发SQLException{
游标mCursor=database.query(true,TABLE_用户,
allColumnsofuserstable,列ID+“=”+行ID,null,null,
空,空,空);
if(mCursor!=null){
mCursor.moveToFirst();
}
返回mCursor;
}
//更新用户
public boolean updateUser(长rowId、字符串名称、整数年龄、字符串性别、,
管柱重量、管柱高度、管柱标高、浮点数){
ContentValues=新的ContentValues();
value.put(列名称、名称);
值。put(列\年龄,年龄);
价值观。put(列_性别,性别);
值。放置(列\重量,重量);
值。放置(列的高度、高度);
值。put(列\活动,级别);
数值。put(热量列,calnum);
返回database.update(表用户、值、列ID+“=”+rowId、,
null)>0;
}
//食物方法!
//创建一个新的食物行
public long createFood(字符串名称、双食物卡、双食物脂肪、,
双粮(蛋白质、双粮(碳水化合物){
ContentValues Fvalues=新ContentValues();
Fvalues.put(食品名称、名称);
F值。put(食物卡,食物卡);
F值。put(食物和脂肪,食物和脂肪);
Fvalues.put(食品蛋白、食品蛋白);
F值。put(食用蟹、食用碳水化合物);
返回数据库。插入(表食物、食物ID、Fvalues);
}
//按ID删除食物
公共图书馆
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 12);
}
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 12);
}
db.execSQL("DROP TABLE IF EXISTS users");
db.execSQL("DROP TABLE IF EXISTS food");
// here you have used DROP_TABLE
db.execSQL("DROP_TABLE IF EXISTS exercise");