ormlite 笔记

添加依赖:

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

使用

常用注解:

@DatabaseTable(tableName = "t_user") //指定实体和表的一一对应关系

@DatabaseField()   //指定属性和表中的列的一一对应关系

常用配置说明:

主键: id = true

自增主键: generateId = true

是否为空: canBeNull = false

列明:columnName  = “name"

外键:forein = true

示例:

@DatabaseTable(tableName = "t_address")
public class AddressBean {
    @DatabaseField(id = true)
    private int _id;
    @DatabaseField(canBeNull = false)
    private String goodsAddress;
    @DatabaseField(canBeNull = false)
    private String village;
    @DatabaseField(canBeNull = false,foreign = true,columnName = "user_id",foreignColumnName = "_id")
    private UserBean user;

}

@DatabaseTable(tableName = "t_user")
public class UserBean {
    @DatabaseField(id = true)
    private int _id;

@ForeignCollectionField(eager = true)
private ForeignCollection<AddressBean> addressList;

}

DBHelper管理

与原生DBHelper相同,主要负责数据库的创建和表的维护。需要继承OrmLiteSqliteOpenHelper类。

使用工具:TableUtils完成表的相关操作,如创建、清空、删除

示例:

public class DBHelp extends OrmLiteSqliteOpenHelper{
    public DBHelp(Context context, String databaseName, SQLiteDatabase.CursorFactory factory, int
            databaseVersion) {
        super(context, databaseName, factory, databaseVersion);
    }

    @Override
    public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
        try {
            TableUtils.createTable(connectionSource, UserBean.class);
            TableUtils.createTable(connectionSource, AddressBean.class);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

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

    }
}

测试:(注意上下文Context的获取)

InstrumentationRegistry.getTargetContext()

@Test
public void testDBHelp() {
    DBHelp dbHelp = new DBHelp(InstrumentationRegistry.getTargetContext(), "take.db", null, 1);
    dbHelp.getWritableDatabase();
}

@Test
public void testCreateUserTable() throws SQLException {
    DBHelp dbHelp = new DBHelp(InstrumentationRegistry.getTargetContext(), "take.db", null, 1);
    Dao<UserBean, Integer> dao = dbHelp.getDao(UserBean.class);

    UserBean userBean1 = new UserBean();
    userBean1.setId(1);
    userBean1.setName("张三");
    dao.create(userBean1);

    UserBean userBean2 = new UserBean();
    userBean2.setId(2);
    userBean2.setName("李四");
    dao.create(userBean2);

}

@Test
public void testCreateAddressTable() throws SQLException {
    DBHelp dbHelp = new DBHelp(InstrumentationRegistry.getTargetContext(), "take.db", null, 1);
    Dao<AddressBean, Integer> dao = dbHelp.getDao(AddressBean.class);

    UserBean userBean = new UserBean();
    userBean.setId(2);
    userBean.setName("李四");
    for (int i = 0; i < 10; i++) {
    AddressBean addressBean = new AddressBean();
        addressBean.setId(i);
        addressBean.setGoodsAddress("商品地址"+i);
        addressBean.setHome("收货地址"+i);
        addressBean.setUser(userBean);
        dao.create(addressBean);
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值