android数据库升级(一)
来源:互联网 发布:淘宝品牌授权资质 编辑:程序博客网 时间:2024/04/28 16:25
一、定义一个adress的实体类
package com.databasetest;
public class Address {
public int id;
public String address;
public String province;
@Override
public String toString() {
return "Address [id=" + id + ", address=" + address + ", province="
+ province + "]";
}
}
二、定义helper
package com.databasetest;
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class AddressDBHelper extends SQLiteOpenHelper{
private static SQLiteOpenHelper mInstance;
private final static String name = "AddressDBHelper.db";
public static SQLiteOpenHelper getInstance(Context context){
if(mInstance == null){
//3与1版本不同会调用升级方法
mInstance = new AddressDBHelper(context, name, null, 3);
}
return mInstance;
}
public AddressDBHelper(Context context, String name, CursorFactory factory,
int version) {
//通过修改version值来通知调用升级程序
super(context, name, factory, 1);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table address(_id integer primary key autoincrement,address text)");
}
//如果构造方法的version值与已经存在的不同则条用此方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.beginTransaction();
try {
db.execSQL("Alter Table address ADD COLUMN province text");
// Create tables
db.setTransactionSuccessful();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
db.endTransaction();
}
}
三、写一个dao类进行增删改查
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class AddressDao {
private SQLiteOpenHelper mOpenHelper;
public AddressDao(Context context) {
super();
this.mOpenHelper = AddressDBHelper.getInstance(context);
}
public void add(String address){
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
db.beginTransaction();
try {
if(db.isOpen()){
ContentValues values = new ContentValues();
values.put("address", address);
db.insert("address", "", values);
db.setTransactionSuccessful();
}
} catch (Exception e) {
}finally{
db.endTransaction();
}
db.close();
}
public void deleteById(int id){
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
db.beginTransaction();
try {
if(db.isOpen()){
db.delete("address", " _id = ? ", new String[]{id + ""});
db.setTransactionSuccessful();
}
}catch (Exception e) {
}finally{
db.endTransaction();
}
db.close();
}
public Address findAddressById(int id){
SQLiteDatabase db = mOpenHelper.getReadableDatabase();
Address address = null;
try {
if(db.isOpen()){
Cursor c = db.query("address", new String[]{"_id","address"},
"_id=?",new String[]{id+""},
null, null, null);
if(c.moveToNext()){
address = new Address();
address.id = c.getInt(c.getColumnIndex("_id"));
address.address = c.getString(c.getColumnIndex("address"));
}
}
} catch (Exception e) {
}
db.close();
return address;
}
public List<Address> findAll(){
SQLiteDatabase db = mOpenHelper.getReadableDatabase();
List<Address> ads = new ArrayList<Address>();
Address address = null;
if(db.isOpen()){
Cursor c = db.query("address", new String[]{"_id","address"},
null, null, null, null, null, null);
while(c.moveToNext()){
address = new Address();
address.id = c.getInt(c.getColumnIndex("_id"));
address.address = c.getString(c.getColumnIndex("address"));
ads.add(address);
}
}
db.close();
return ads;
}
}
- android数据库升级(一)
- Android Sqlite数据库的升级(一)
- Android 数据库升级 简单应用一
- android数据库升级(二)
- Android 数据库综述(一) 数据库片的升级与数据的迁移操作
- (一)android升级--升级包的制作
- Android数据库升级 数据库升级工具分享
- android 数据库升级(保留原先数据)
- Android GreenDao使用(三)数据库升级
- Android数据库升级
- android 数据库 升级设计
- 【转】android数据库升级
- android 数据库升级
- Android 数据库升级解决方案
- Android数据库升级实例
- Android数据库升级实例
- Android数据库升级实例
- Android 数据库升级解决方案
- Android HttpUrlConnection 发送Post请求 PHP页面$_POST接收不到问题
- LeetCode Word Ladder
- 2014.3.21
- BM算法
- halcon与MFC基于对话框程序
- android数据库升级(一)
- poj 1502:MPI Maelstrom
- HDU 2006 求奇数的乘积
- 继承
- 【排序】Sort Colors
- 修改表字段
- 奇怪的比赛
- HDU 1676 Full Tank? 限制最短路(difficult)
- 怎样修改SWF中的链接?