写一个bean
package ouc.sei.sdcstta.bean;
import java.util.Date;
public class ExcelInfo {
//姓名
private String realname;
//性别
private Integer gender;
//证书编号
private String certificateId;
//证书有效期
private Date certifateDate;
//省证类别
private String provinceMajorName;
//国证类别
private String countryMajorName;
//企业名称
private String comName;
//企业联系人
private String comLinkPerson;
//企业联系电话
private String comLinkPhone;
//订单编号
private String orderNumber;
//学习状态
private String learnStatus;
public String getRealname() {
return realname;
}
public void setRealname(String realname) {
this.realname = realname;
}
public Integer getGender() {
return gender;
}
public void setGender(Integer gender) {
this.gender = gender;
}
public String getCertificateId() {
return certificateId;
}
public void setCertificateId(String certificateId) {
this.certificateId = certificateId;
}
public Date getCertifateDate() {
return certifateDate;
}
public void setCertifateDate(Date certifateDate) {
this.certifateDate = certifateDate;
}
public String getProvinceMajorName() {
return provinceMajorName;
}
public void setProvinceMajorName(String provinceMajorName) {
this.provinceMajorName = provinceMajorName;
}
public String getCountryMajorName() {
return countryMajorName;
}
public void setCountryMajorName(String countryMajorName) {
this.countryMajorName = countryMajorName;
}
public String getComName() {
return comName;
}
public void setComName(String comName) {
this.comName = comName;
}
public String getComLinkPerson() {
return comLinkPerson;
}
public void setComLinkPerson(String comLinkPerson) {
this.comLinkPerson = comLinkPerson;
}
public String getComLinkPhone() {
return comLinkPhone;
}
public void setComLinkPhone(String comLinkPhone) {
this.comLinkPhone = comLinkPhone;
}
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
public String getLearnStatus() {
return learnStatus;
}
public void setLearnStatus(String learnStatus) {
this.learnStatus = learnStatus;
}
}
dao层代码
package ouc.sei.sdcstta.dao.order;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.lang.StringUtils;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import ouc.sei.sdcstta.bean.EnrollForm;
import ouc.sei.sdcstta.bean.ExcelInfo;
import ouc.sei.sdcstta.bean.OrderCountBean;
import ouc.sei.sdcstta.bean.page.QueryResult;
import ouc.sei.sdcstta.dao.BaseDAO;
@Repository
public class EnrollFormDAO extends BaseDAO<EnrollForm>{
@Resource
private SessionFactory sessionFactory;
public List<ExcelInfo> findExcelInfo(Long learnClassId) {
String sql = "SELECT student.realname,userbase.gender,student.certificateId,student.certificateValidity as certifateDate,major.`name` as provinceMajorName,newmajor.`name` as countryMajorName,company.companyName as comName,company.contact as comLinkPerson,company.contactPhone as comLinkPhone,enrollform.orderNumber,orderstatus.statusDetail as learnStatus FROM student,company,major,major as newmajor,enrollform,userbase,orderstatus WHERE student.id = userbase.id and student.id = enrollform.student_id and student.company_id = company.id and student.major_id = major.id and student.newmajor_id = newmajor.id and enrollform.status_id= orderstatus.pid and enrollform.class_id = ? and enrollform.status_id != 12;";
Session session = sessionFactory.getCurrentSession();
Query query = session.createSQLQuery(sql);
query.setLong(0, learnClassId);
//强制转换
query.setResultTransformer(org.hibernate.transform.Transformers.aliasToBean(ExcelInfo.class));
List<ExcelInfo> excelInfos = query.list();
return excelInfos;
}
}
注意: dao层中手写的sql语句返回的名字要和bean中对应起来,搜索出来的是一个Object类型的List,一定要强制转换为对应的bean,这里不进行转换会报错。返回的字段类型最好对应起来,比如gender字段数据库中为int,返回bean中也要int,还有Date的。