OrmLite简单使用

OrmLite简单使用

以收货地址管理为例来简单掌握该框架使用,涉及数据库增删改查操作

表设计:ReceiptAddressInfo //收货地址信息表

t_receipt_address
字段名字段类型
ididint
姓名nameString
手机号phoneString
备用号otherPhoneString
收货地址receiptAddressString
详细地址detailAddressString
标签(类别)lableString
添加时间updateTimeLong

添加依赖

  compile 'com.j256.ormlite:ormlite-android:5.0'

使用

1.首先数据库帮助类MySqliteHelper 继承OrmLiteSqliteOpenHelper。

重写相应方法和构造函数

构造方法:用来确定数据库
onCreate方法:用来创建数据库表
onUpgrade方法:用来升级数据库

代码如下:

public class MySqliteHelper extends OrmLiteSqliteOpenHelper {

    private static final String databaseName ="";//数据库名
    private static final SQLiteDatabase.CursorFactory factory =null;//指针工厂
    private static final int databaseVersion = 1;//数据库版本

    public MySqliteHelper(Context context) {
        super(context, databaseName, factory, databaseVersion);//创建数据库
    }

    @Override
    public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
        try {
            TableUtils.createTable(connectionSource,ReceiptAddressInfo.class);//创建一个地址信息表ReceiptAddressInfo。
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {

    }

}

2.创建表的映射bean类ReceiptAddressInfo(需要有特别要求)完成映射关系

//使用OrmLite时对bean类的要求
/**
 * 1.无参构造函数
 * 2.get/set
 * 3.映射表名
 * 4.映射字段
 */

对应的bean类如下:

//3.映射表名
@DatabaseTable(tableName = "t_receipt_address")//映射表名为t_receipt_address
public class ReceiptAddressInfo {
    //使用OrmLite时对bean类的要求
    /**
     * 1.无参构造函数
     * 2.get/set
     * 3.映射表名
     * 4.映射字段
     */ 

//1.无参构造函数
public ReceiptAddressInfo() {
}

//4.映射字段
@DatabaseField(columnName = "_id",generatedId = true)//映射表字段为:_id,并且自增
private int id;
@DatabaseField(columnName = "name")
private String name;
@DatabaseField(columnName = "uid")
private String uid;
@DatabaseField(columnName = "sex")
private String sex;
@DatabaseField(columnName = "phone")
private String phone;
@DatabaseField(columnName = "other_phone")
private String otherPhone;
@DatabaseField(columnName = "receipt_address")
private String receiptAddress;
@DatabaseField(columnName = "detail_address")
private String detailAddress;
@DatabaseField(columnName = "lable")
private String lable;//公司 家庭  无
@DatabaseField(columnName = "update_time")
private long updateTime=System.currentTimeMillis();


//2.get/set
public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

..........略........

public long getUpdateTime() {
    return updateTime;
}

public void setUpdateTime(long updateTime) {
    this.updateTime = updateTime;
}

}

3.数据库操作—增

    //模拟几个收货地址
    MySqliteHelper helper = new MySqliteHelper(MyApp.getContext());
    try {
        mDao = helper.getDao(ReceiptAddressInfo.class);
    } catch (SQLException e) {
        e.printStackTrace();
    }
    for (int i = 0; i < 20; i++) {
        ReceiptAddressInfo bean=new ReceiptAddressInfo();
        bean.setUid("uid"+i);
        bean.setName("用户"+i);
        bean.setSex("man");
        bean.setPhone("1111");
        bean.setOtherPhone("1111");
        bean.setReceiptAddress("北京昌平北七家");
        bean.setDetailAddress("修正大厦4");
        bean.setLable("公司");
        try {
             mDao.create(bean);//增加操作
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

4.数据库操作—查

public void loadData()  {
    try {
        List<ReceiptAddressInfo> infos = mDao.queryForAll();
        //查询所有数据,按照插入顺序。
        view.showList(infos);
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

//按照时间的逆序来进行查询

public void loadData()  {
    try {
//      List<ReceiptAddressInfo> infos = mDao.queryForAll();
        List<ReceiptAddressInfo> infos = mDao.queryBuilder().orderBy("update_time",false).query();
        //按照update_time的倒叙来进行查询(关键字queryBuilder)
        view.showList(infos);//展示数据
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

5.数据库操作—改

  public void update(ReceiptAddredsInfo bean) {
    try {
        mDao.update(bean);
        view.showMessage("更新成功");
    } catch (SQLException e) {
        e.printStackTrace();
    }
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值