zoukankan      html  css  js  c++  java
  • Android ormlite 框架介绍

    1.  ormlite框架
    1.  从 http://ormlite.com/releases/下载对应的核心包core及android支持库.然后在项目中加入两个jar包.
    2.  存储的数据对象实体
    public class Entity{
    @DatabaseField(generatedId = true)//自增长的主键
    int id;
    @DatabaseField//声明string为数据库字段
    String string;
    public Entity() {
    //ormlite中必须要有一个无参的构造函数
    }
    ...
    }
    ormlite是通过注解方式配置该类的持久化参数,其中常用参数如下:
    1.表名:不指定的话表名就是类名.
    @DatabaseTable(tableName="dataTableName")
    2.字段:这个可以配置的属性有点多.
    @DatabaseField
    (1)主键:
    @DatabaseField(id=true)
    (2)列名: 不指定的话就是和变量名一样的
    @DatabaseField(columnName="columnName")
    (3) 数据类型: 这个一般情况下都不用指定,可以根据java 类获得
    @DatabaseField(dataType=DataType.INTEGER)
    (4) 默认值:
    @DatabaseField(defaultValue="0")
    (5)长度:一般用于String型
    @DatabaseField(width=13)
    (6) 能否为空:默认为True
    @DatabaseField(canBeNull=false)
    3.  需要数据DataHelper类,来创建及管理数据库. DataHelper类继承OrmLiteSqliteOpenHelper.并在覆盖实现onCreate, onUpgrade, close等方法.
    @Override
    public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource){
    try{
    Log.e(DataHelper.class.getName(), "开始创建数据库");
    TableUtils.createTable(connectionSource, Entity.class);
    Log.e(DataHelper.class.getName(), "创建数据库成功");
    }catch(SQLException e){
    Log.e(DataHelper.class.getName(), "创建数据库失败", e);
    }
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int arg2, int arg3){
    try{
    TableUtils.dropTable(connectionSource, Entity.class, true);
    onCreate(db, connectionSource);
    Log.e(DataHelper.class.getName(), "更新数据库成功");
    }catch(SQLException e){
    Log.e(DataHelper.class.getName(), "更新数据库失败", e);
    }
    }
    @Override
    public void close(){
    super.close();
    }
    4.  需要相应的数据Dao类,即数据访问接口.
    public class EntityDao{
    public List findData(Dao Entitydao, int id) throws SQLException{
    HashMap EntityMap = new HashMap();
    userguideMap.put("id", id);
    List EntityLists = entityDao.queryForFieldValues(EntityMap);
    return EntityLists == null ? null : EntityLists;
    }
    public void addEntity(Dao entityDao, String string) throws SQLException{
    Entity Entity =new Entity(string);
    entityDao.create(Entity);
    }
    }
    5.  调用
    ormlite有两种使用方法,一种是继承对应的OrmLiteBaseActivity.但像xxxx Activity本身必须继承BaseActivity,这样就必须使用另外一种方法:在activity中添加一个获取helper的方法,还有在onDestroy中添加及时关闭helper的方法。
    private DataHelper dataHelper = null;
    private DataHelper getHelper() {
    if (dataHelper == null) {
    dataHelper = OpenHelperManager.getHelper(this, DataHelper.class);
    }
    return dataHelper;
    }
    @Override
    protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    if (dataHelper != null) {
    OpenHelperManager.releaseHelper();
    dataHelper = null;
    }
    }
    其中数据库操作实现代码如下:
    EntityDao dao = new EntityDao();
    try {
    Dao dataDao = getHelper().getDataDao();
    //查找操作调用
    List simpledataList = dao.findData(dataDao, 1);
    //添加操作调用
    dao.addEntity(dataDao,"demotest");
    } catch (SQLException e) {
    e.printStackTrace();

     
  • 相关阅读:
    【硬件】PCB设计步骤
    【modbus】modbus协议入门讲解
    【I2C】上拉电阻的选择
    【运放】失调电压、偏置电流
    【硬件】模拟地和数字地的隔离
    【电力】电流互感器和电压互感器
    【电力】为什么高电压传输时线路损耗小
    【办公】pdf转ppt的方法
    【EMC】电压暂降、短时中断和电压变化
    js 下的 split
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3125084.html
Copyright © 2011-2022 走看看