1. 程式人生 > >深入理解回撥函式的使用

深入理解回撥函式的使用

public class ElecUserDaoImpl extends CommonDaoImpl<ElecUser> implements IElecUserDao { public List<ElecUser> findCollectionByConditionNoPageWithSql(String condition, final Object[] params, Map<String, String> orderby) { //要執行的sql語句 String sql="select o.userID,o.logonName,o.userName,a.ddlName,o.contactTel,o.onDutyDate,b.ddlName "
+ " from elec_user"+ " o inner join elec_systemddl a on o.sexID=a.ddlCode and a.keyword='性別'" + " inner join elec_systemddl b on o.postID=b.ddlCode and b.keyword='職位'" + " where 1=1"; //將Map集合中存放的欄位排序,組織成ORDER BY o.textDate ASC,o.textName DESC String orderbyCondition = this.orderbySql(orderby); //新增查詢條件
final String finalSql = sql + condition + orderbyCondition; List<Object[]> list=this.getHibernateTemplate().execute(new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query =session.createSQLQuery(finalSql) .addScalar("o.userID"
) .addScalar("o.logonName") .addScalar("o.userName") .addScalar("a.ddlName") .addScalar("o.contactTel") .addScalar("o.onDutyDate") .addScalar("b.ddlName"); if(params!=null && params.length>0){ for(int i=0;i<params.length;i++){ query.setParameter(i, params[i]); } } return query.list(); }}); //將List<Object[]>轉換成List<ElecUser> List<ElecUser> userList =new ArrayList<ElecUser>(); if (list!=null && list.size()>0) { for (Object [] o : list) { ElecUser elecUser = new ElecUser(); //o.userID,o.logonName,o.userName,a.ddlName,o.contactTel,o.onDutyDate,b.ddlName elecUser.setUserID(o[0].toString()); elecUser.setLogonName(o[1].toString()); elecUser.setUserName(o[2].toString()); elecUser.setSexID(o[3].toString()); elecUser.setContactTel(o[4].toString()); elecUser.setOnDutyDate((Date)o[5]); elecUser.setPostID(o[6].toString()); userList.add(elecUser); } } return userList; } }