17.Android存储-数据库- OrmLite 使用

初始化

/**
 * Created by 智江鹏
 */
public class Z_DataBaseHelper extends OrmLiteSqliteOpenHelper {

    private final static String DATABASE_NAME = "lifes.db";//创建数据以.db结尾
    private final static int VERSION = 3;//数据库的版本号

    private Map<String, Dao> maps = new HashMap<>();
    //使用单例模式
    private static Z_DataBaseHelper instance;

    public static synchronized Z_DataBaseHelper getInstance(Context context) {
        if (instance == null) {
            synchronized (Z_DataBaseHelper.class) {
                if (instance == null) {
                    instance = new Z_DataBaseHelper(context);
                }
            }
        }
        return instance;
    }

    /**
     * 获得数据库的访问对象
     *
     * @param cls
     * @return
     * @throws SQLException
     */
    public synchronized Dao getDao(Class cls) throws SQLException {
        Dao dao = null;
        String className = cls.getSimpleName();//通过反射获得类名
        if (maps.containsKey(className)) {
            dao = maps.get(className);
        }
        if (dao == null) {
            dao = super.getDao(cls);
            maps.put(className, dao);
        }
        return dao;
    }

    /**
     * 关闭所有操作
     */
    public void close() {
        super.close();
        for (String key : maps.keySet()) {
            Dao dao = maps.get(key);
            dao = null;
        }
    }

    public Z_DataBaseHelper(Context context) {
        super(context, DATABASE_NAME, null, VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) {
        //完成对数据库的创建,以及表的建立  (第一次操作数据库时候,被调用  )
        try {
            TableUtils.createTable(connectionSource, Life_UserInfo.class);
            TableUtils.createTable(connectionSource, Obu_Info.class);
            TableUtils.createTable(connectionSource, ObuTrade_Info.class);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int i, int i1) {
        try {
            TableUtils.dropTable(connectionSource, Life_UserInfo.class, true);
            TableUtils.dropTable(connectionSource, Obu_Info.class, true);
            TableUtils.dropTable(connectionSource, ObuTrade_Info.class, true);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

获取DAO 

 public Z_TradeInfoDao(Context context) {
        this.context = context;
        helper = Z_DataBaseHelper.getInstance(context);
        try {
            obudao = helper.getDao(ObuTrade_Info.class);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

Life_Devices user = new Life_Devices();
user.setId(UUID.randomUUID().toString());
user.setDevicename(devicename);
user.setDeviceid(Deviceid);
user.setStorid(Storid);
userDao.create(user);

Life_Devices account1 = userDao.queryBuilder().where().eq("storid", account).query().get(0);
userDao.delete(account1);

单条件查询

List<Life_Devices> getId;

public List<Life_Devices> getID(String account) {
    try {
        getId = userDao.queryBuilder().where().eq("storid", account).query();
        return getId;

    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

多条件查询

QueryBuilder<VideoTagInfo, Integer> queryBuilder = videoTagInfoIntegerDao.queryBuilder();
try {
    queryBuilder.where().eq("value",roomId).and().eq("myFocus",true);
    VideoTagInfo videoTagInfo = queryBuilder.queryForFirst();
    long count = queryBuilder.countOf();
    Log.i("ss","___________________________________count:"+count+"_____videoTagInfo:"+videoTagInfo);
    if(videoTagInfo != null){
        return true;
    }

} catch (SQLException e) {
    Log.i("ss","____________________________________________e:"+e);
    e.printStackTrace();

}

更新

UpdateBuilder<Life_Devices, Integer> life_devicesIntegerUpdateBuilder = userDao.updateBuilder();
life_devicesIntegerUpdateBuilder.updateColumnValue("storid", storid).where().eq("deviceid", deviceid);
life_devicesIntegerUpdateBuilder.update();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值