2013-09-23 20 views
0

對於我的工作,我試圖說服我的同事使用ORMLite(剛剛發現它),而不是編寫自己笨拙且容易出錯的DB訪問器代碼。我已經有大約2個小時的時間讓這個事情發揮作用,所以我希望你們能幫助我。理解ORMLite。任何幫助歡迎

所以我現在試圖理解一個示例應用程序,我發現here。據我所知,你需要爲每個模型/表格創建一個類。在這個例子中有一個Person.java和一個App.java文件。在這些文件中,您需要爲每個字段手動創建所有獲取者和設置者。到現在爲止還挺好。

除了這些文件,我已經得到了folloowing的:

  • DatabaseHelper.java
  • DemoRepository.java
  • PersonAdapter.java
  • DemoORMLiteACtivity.java

我問題是:

  1. 什麼是這個意義上的存儲庫?爲什麼需要?我正在瀏覽代碼,並且我無法真正理解它。
  2. 此外,我是否也需要自己創建所有這些文件,或者是其中一些自動生成的?
  3. 如果我需要自己創建所有這些文件,使用ORM的優點是什麼,除了不需要SQL的幾行?

歡迎所有提示!

回答

1

什麼是這個意義上的存儲庫?爲什麼需要?我正在瀏覽代碼,並且我無法真正理解它。

呃你提供的鏈接描述它相當不錯:

存儲庫層封裝了所有ORMLite來電隱藏與所有數據庫操作的任何異常和代碼。

所以「存儲庫」是什麼提供了特定的業務邏輯方法,依次調用數據訪問對象或DAO方法。它是您通過其調用數據庫的實用程序類。在他們的示例中,他們有deletePerson(...),它執行一堆數據庫操作來刪除Person及其關聯的App條目。

DAO類提供了所有實體不可知的方法類型queryById(...)。在我看來,存儲庫類爲特定的應用程序添加了非常具體的功能。

如果你看看ORMLite HelloAndroid example code,你可以看到它沒有存儲庫類,所以它不是必需的。

此外,我是否也需要自己創建所有這些文件,或者是其中的一些自動生成的?

您將需要自己創建實體文件和數據庫幫助程序。數據庫幫助程序是處理您可能已有的onCreate(...)onUpgrade(...)方法的類。有一個基類OrmLiteSqliteOpenHelper來幫助。

如果我需要自己創建所有這些文件,使用ORM的優點是什麼,除了不需要SQL的幾行?

ORMs是一個好主意有很多原因。對我來說,這是關於可擴展性的。當然,現在它已經是「幾行SQL」了,但除非你沒有增長計劃,否則兩條線可能會變得非常複雜。使用ORM,您可以管理實體,而不用擔心數據庫。

這裏有一些更多的信息: