Android中数据库升级

WBOY
Lepaskan: 2016-06-07 16:10:56
asal
1138 orang telah melayarinya

public class MySQLiteHelper extends SQLiteOpenHelper { public static final String span style=font-family: Arial, Helvetica, sans-serif;SQL_CREATE/spanspan style=font-family: Arial, Helvetica, sans-serif;= create table news ( /span + _id in

public class MySQLiteHelper extends SQLiteOpenHelper {  
      
    public static final String <span style="font-family: Arial, Helvetica, sans-serif;">SQL_CREATE</span><span style="font-family: Arial, Helvetica, sans-serif;">= "create table news ("  </span>
            + "_id integer primary key autoincrement, "  
            + "nametext, "  
            + "agetext, )";  
  
    public MySQLiteHelper(Context context, String name, CursorFactory factory,  
            int version) {  
        super(context, name, factory, version);  
    }  
  
    @Override  
    public void onCreate(SQLiteDatabase db) {  
        db.execSQL(SQL_CREATE); 
    }  
  
    @Override  
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
    }  
  
} 
Salin selepas log masuk
当我们如上创建了个SQLiteHelper,我们知道会在本地的目录database中生成了个.db数据库文件! 可是我们遇到版本迭代往往要做更多的事情 这时候的会再创建个新的数据库
Salin selepas log masuk
这时候我们编译完成之后发现没有在database相对应的目录下生成一个相对应的表。当然我们在调试代码的时候可以清楚应用数据这样重新运行的时候会把onCreate方法再次执行一次那当然就会把未生成成功的表生成出来,可以在用户迭代更新应用的时候总不能每次都清楚数据是吧! 所以:
Salin selepas log masuk
<pre name="code" class="java">@Override  
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    onCreate(db);  
} 
Salin selepas log masuk
主要思路就是更新version,就是说你用户现有装的app上version是1的时候,在迭代版本更新的时候要更新version为>1的值 这样我们在new MySQLiteHelper() 的时候就会执行onUpgrade()方法,然后在在该方法中写入相对应的操作就会在database下生产相对应的表而不需要用户去清除应用的数据。
Salin selepas log masuk
Salin selepas log masuk
当然这种方法有一个很严重的弊端就是  可能我们在发布版本的时候忘记修改该version导致无法操作数据引起一系列不可收拾的bug。 所以推荐使用LitePal开源库进行对数据库操作!
详情可见  <a target=_blank href="http://http://blog.csdn.net/guolin_blog/article/details/39151617">点击打开链接</a>
Salin selepas log masuk
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!