深入理解回撥函式的使用
阿新 • • 發佈:2019-01-25
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;
}
}