Android 使用ORMLite 操做數據庫

用過ssh,s2sh的確定不會陌生 ,應該一學就會java

第一步:android

          下載ormlite-android-4.41.jar和ormlite-core-4.41.jar兩個jar包,放入工程的libs文件夾內,而後右鍵 builder path-->add pathweb

第二步:對你要持久化的類進行註解(記住.提供一個默認無參構造)數據庫

@DatabaseTable(tableName="student")  tableName 代表
public class Student {
	public static final String ID="student_id";
	public static final String NAME="student_name";
	public static final String LASTNAME="student_lastname";
	public static final String RESOURCE="student_resource";	
	public static final String TEACHER_ID="tacher_id";
	@DatabaseField(generatedId=true,useGetSet=true,columnName=ID)	
	private int id;
	@DatabaseField(foreignColumnName=Teacher.ID,foreign=true,foreignAutoCreate=true)
	private Teacher teacher_id;
	@DatabaseField(useGetSet=true,columnName=NAME)	
	private String name;
	@DatabaseField(useGetSet=true,columnName=LASTNAME)
	private String lastName;
	@DatabaseField(useGetSet=true,columnName=RESOURCE)
	private double	resource;
 一系列的set get 方法...

過一會將詳細的列出各類註解的意思,這裏只須要知道 @DatabaseTable 指定類對應的代表,@DatabaseField 對應的字段名,ssh

第二步:ide

         建立一個database helper類,繼承OrmLiteSqliteOpenHelper 實現 onCreate 和 onUpgrade ,這個類相似於 android 的SQLiteOpenHelper方法 ,你們應該知道這個類的做用了,建立刪除數據庫應該使用TableUtils工具類的方法.一會下面介紹工具

第二步:分兩種狀況,一個直接在Activity中使用OrmLite 建立的dao類ui

             (1)這時候,你的Activity類應該實現OrmLiteBaseListActivity, OrmLiteBaseService或者 OrmLiteBaseTabActivity,而後在類中使用getHelper().getDao(Class clazz);建立你的DAO 對象,而後使用其中的方法對數據進行操做.this

             (2)有些人和我同樣.不喜歡將DAO層和Activity層放在一塊兒,喜歡講操做數據庫的類單獨放在DAO包中,造成DAO層,貌似是web開發留下的..........................習慣spa

                            這時候,咱們須要在自定義的DAO中使用 OrmLiteSqliteOpenHelper helper=OpenHelperManager.getHelper(context,BasicDAO.class);方法來獲得helper對象,這個對象須要保持,根據文檔上說在銷燬對象的時候須要OpenHelperM                                   anager.releaseHelper();使用這個方法來釋放掉helper對象,而後使用helper對象的getDao(Student.class);方法獲得DAO類,

                            而後咱們就可使用DAO類,完成各類各樣的數據庫 增刪改操做.

                            例如:

public class StudentDAO{
	Dao
 
   dao=null;
	private Context context=null;
	OrmLiteSqliteOpenHelper helper=null;
        public StudentDAO(Context context) {
		this.context=context;
		// TODO Auto-generated constructor stub
		helper=OpenHelperManager.getHelper(context,BasicDAO.class);
		try {
			dao=helper.getDao(Student.class);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
        @Override

   protected void finalize() throws Throwable {

   // TODO Auto-generated method stub

   OpenHelperManager.release();//釋放掉helper

   super.finalize();

   }
}

接下來介紹..各類各樣的註解

首先介紹 @DatabaseTable

                                參數:tableName指定代表,沒有將使用類名做爲代表

                 @DatabaseField

cloumnName:指定字段名,不指定則變量名做爲字段名  canBeNull:是否能夠爲null  
dataType:指定字段的類型 defaultValue:指定默認值  width:指定長度
 id:指定字段爲id generatedId:指定字段爲自增加的id,不能id,generatedIdSequence通用 foreign 指定這個字段的對象是一個外鍵,外鍵值是這個對象的id
useGetSet:指定ormlite訪問變量使用set,get方法默認使用的是反射機制直接訪問變量 throwIfNull,若是空值拋出異常 persisted:指定是否持久化此變量,默認true
unique:字段值惟一 uniqueCombo整列的值惟一 index:索引
uniqueIndex 惟一索引 foreignAutoRefresh 外鍵值,自動刷新 foreignAutoCreate 外鍵不存在時是否自動添加到外間表中
foreignColumnName外鍵字段指定的外鍵表中的哪一個字段    

                 @ForeignCollectionField  表示這個表中的數據在其餘表中是外鍵(其餘表的某個字段使用@DatabaseField(foreignColumnName=一個表的id鍵名,foreign=true)

                                          eager 表示該集合是在初始化這個對象的時候,是否講對象取出仍是在遍歷的時候才取出,默認false遍歷的時候才取出,size()方法也會引發遍歷

                                          這個註解註解的字段只能是ForeignCollection<T> or Collection<T> 對象

TableUtils

接下來介紹TableUtils完成對數據中的表進行建立,刪除,清空表格,只要看一下它的靜態方法.作過程序的應該都會


Dao<T,V>

包含兩個泛型,第一個泛型表DAO操做的類,第二個表示操做類的主鍵類型

主要方法:

             create:插入一條數據

             createIfNotExists:若是不存在則插入

             createOrUpdate:若是指定id則更新

             queryForId:更具id查找

             update 查找出數據

             refresh的解釋:If you want to use other elds in the Account, you must call refresh on the accountDao class to get the Account object lled in.

             delte 刪除數據

             queryBuilder() 建立一個查詢生成器:進行復雜查詢

            deleteBuilder() 建立一個刪除生成器,進程複雜條件刪除

            updateBuilder() 建立修條件生成器,進行復雜條件修改

條件查找器DeleteBuilder,QueryBuilder,UpdateBuilder

            查找器是幫助拼接條件語句的.好比查找器中有 where()方法 and()方法 eq()方法 lt()方法 qt()方法 between方法這些方法很直觀..很容易都明瞭什麼意思

            最後使用prepare()方法生成條件使用DAO.query || DAO.delete|| DAO.update 方法執行

           可使用查找生成器QueryBuilder 的 orderby limit offset 方法進行排序,分頁, 

相關文章
相關標籤/搜索