/**
* 獲取模型
*@param cursor
*@param classz
*@param
*@return
*/public
listgetmodel(final cursor cursor,classclassz)
class c = classz;
field fields = c.getdeclaredfields();
method methods = c.getdeclaredmethods();
listlist = new arraylist<>();
while(cursor.movetonext()) ;
object oj = null;
getresult(typename, oj, new valuetypeinte***ce()
@override
public
void
getvalue(boolean result)
@override
public
void
getvalue(float result)
@override
public
void
getvalue(double result)
@override
public
void
getvalue(long result)
@override
public
void
getvalue(string result)
@override
public
void
getvalue(byte result)
});try catch (illegalacces***ception e) catch (invocationtargetexception e)
}list.add(a);
}return list;
}/**
* 通過反射去例項化相應類
**@param
返回例項的泛型型別
*@return
*/public
static
t getinstance(class clazz) catch (instantiationexception e) catch (illegalacces***ception e) catch (exception e)
return
null;
}
我們傳入乙個cursor表和乙個我們要轉的model 的class例項,我們通過這個例項反射生成乙個物件,然後找到每個物件的set方法,因為要通過set方法來將cursor表中的值設進model中,到了這裡,我們已經能將乙個cursor表所有的物件對映成為乙個list物件了,我們編寫我們資料庫操作的查詢操作dbaction的query方法實現
@override
public
list
query(string tablenamele, string selection, string selectionargs, string orderby,class
classz)
}cursor cursor = db.query(tablenamele,columns,sb.tostring(),selectionargs,"","",orderby);
list
list = dbutils.getmodel(cursor,classz);
return
list;
}
我們需要傳入表名,查詢的條件以及model的對應的class例項,我們在這裡使用泛型而不是使用object是有好處的,因為泛型會在編譯是檢查型別,有什麼問題我們在編譯時就發現了,使用object會不安全,並且還需要手動轉換型別,很麻煩,所以要使用泛型,這樣乙個方法可以變得很靈活,不過也有壞處,具體好壞我就不在這裡說了,然後我們userdao的實現
@override
public user get(string id) ,new string,null,user.class);
daohelp.close();
if(null != list && list.size() > 0)
return
list.get(0);
else
return
null;
}
我們通過id去查詢資料庫 並且取出資料,呼叫方式
findviewbyid(r.id
.btnquery).setonclicklistener(
new view.onclicklistener()
});
django模型類一查多,多查一
from django.db import models class book models.model 圖書 name models.charfield max length 30,verbose name 書名 pub date models.datefield verbose name 發布日...
2867 加法表,一查就清楚
time limit 1 sec memory limit 128 mb submit 188 solved 131 submit status web board 算乘法常要用乘法表,熊孩子小明做加法也要查表!這嬌慣出來的孩子啊,給他乙個吧 請輸入1 9中的乙個數n,輸出n以內的所有數相加之和 乙...
乙個簡易gopool框架
在 go 中起協程是非常方便的,節省資源的,協程棧大小最大為2kb,所以乍一看在 go 中設計協程池是多此一舉的 但通過 pool 可以提供統一的多工處理模型,統一管理任務處理過程中的監控 告警 且實現資源隔離 不同協程池處理不同型別任務 最重要的一點 通過確定數量的 worker 可以實現對大事務...