赵雅智_sqlite修改表结构
发布时间:2020-12-12 20:01:24 所属栏目:百科 来源:网络整理
导读:1.更改数据库版本号(每次更新都一定要进行版本的升级) 2.更新语句一条一条写,不能并列写 例如: public void onUpgrade(SQLiteDatabase db,int arg1,int arg2) {db.execSQL("alter table users add userage integer;span style="font-family: Arial,Helve
1.更改数据库版本号(每次更新都一定要进行版本的升级) 2.更新语句一条一条写,不能并列写 例如: public void onUpgrade(SQLiteDatabase db,int arg1,int arg2) { db.execSQL("alter table users add userage integer;<span style="font-family: Arial,Helvetica,sans-serif;">alter table users add usersalary doouble</span>"); }上面语句只能执行“;”前的语句,后面的无法插入。 所以要将代码改为下式代码,才能两条语句都执行。 public void onUpgrade(SQLiteDatabase db,int arg2) { db.execSQL("alter table users add userage integer"); db.execSQL("alter table users add usersalary doouble"); } 具体代码: 创建数据库代码:DatabaseHelper package com.example.android_sqlite.database; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper { // 数据库名称 private static final String DATABASENAME = "csdn.db"; // 数据库更新版本号 private static int databaseBersion = 2; /** * * @param context * :上下文对象 * @param name * :数据库名称 * @param factory * :cursor工厂对象,可以设置null.采用默认的CursorFactory对象 * @param version * :数据库版本号 */ public DatabaseHelper(Context context) { super(context,DATABASENAME,null,databaseBersion); } /** * 当数据库第一次创建的时候会调用这个方法 */ @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table users(userid integer primary key autoincrement,username varchar(20))"); } /** * 当数据库的版本升级的时候,自动调用这个方法(根据数据库的版本号) */ @Override public void onUpgrade(SQLiteDatabase db,int arg2) { db.execSQL("alter table users add userage integer"); db.execSQL("alter table users add usersalary doouble"); System.out.println("-----------------升级了-----------------"); } } 测试类:DatabaseTese.java package com.example.android_sqlite.test; import com.example.android_sqlite.database.DatabaseHelper; import android.test.AndroidTestCase; public class DatabaseTese extends AndroidTestCase { public void createDatabase() { DatabaseHelper dh = new DatabaseHelper(getContext()); dh.getWritableDatabase(); } } 运行结果如下: 控制台输出:
cmd命令行输出:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |