Android ormlite 架構介紹

來源:互聯網
上載者:User

 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();

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.