Information Technology Reference
In-Depth Information
DataAccess
+findByDetachedCriteria(in DetachedCriteria detachedCriteria) : List
dataModelList
-criterions : List
-myDataAccess : DataAccess
+query() : DataModel
#getDetachedCriteria() : DetachedCriteria
batchGoodsDataModel
originalGoodsDataModel
#getDetachedCriteria1() : DetachedCriteria
#getDetachedCriteria() : DetachedCriteria
Fig. 3. The class diagram of Middle Layer
Middle Layer can be divided into three layers in concept: data access layer; core
layer and query layer. The data access layer includes DataAccess class, which is the
interface with Hibernate. In DataAccess, the parameter DetachedCriteria received
from core layer will be processed in a Hibernate session opened in DataAccess. The
key codes are as follows:
public static List findByDetachedCritria(DetachedCriteria detachedCriteria){
List list=null;
try {session = HibernateUtil.currentSession();
tx = session.beginTransaction();
list=detachedCriteria.getExecutableCriteria(session).list(); tx.commit();
}catch (HibernateException e) {
e.printStackTrace();tx.rollback();
}finally{HibernateUtil.closeSession(session); }
return list; }
The core layer is just what the name implies: the key of Middle Layer. In the layer,
an abstract class named DataModelList is involved. The major tasks of DataModel-
List have two points: return different DetachedCriteria object to DataAccess with the
idea of polymorphism, secondly, encapsulate dataset returned by DataAccess as
DataModel, which can be used by JSF's components as data source, such as
DataTable. The key codes are as follows:
public abstract class dataModelList {
private DataAccess myDataAccess=new DataAccess();
private DataModel dataList=new ListDataModel();
private List<Criterion> criterions=new ArrayList<Criterion>();
protected abstract DetachedCriteria getDetachedCriteria();
final public DataModel query(){
try { dataList.setWrappedData(myDataAccess.
findByDetachedCriteria(getDetachedCriteria()));
Search WWH ::




Custom Search