public PageModel listStudent(int pageNo, int pageSize, String clientIdOrName) { StringBuffer sbSql = new StringBuffer(); sbSql.append("from Student "); if(clientIdOrName != null && clientIdOrName.trim().length() != 0) { sbSql.append("where id like '%" + clientIdOrName + "%' or time like '%" + clientIdOrName + "%'"); } Session session = null; Transaction tx = null; PageModel pageModel = null; List studentes = new ArrayList(); try { session = HibernateSessionFactory.getSession(); tx = session.beginTransaction(); Query query = session.createQuery(sbSql.toString()); query.setFirstResult((pageNo -1) * pageSize); query.setMaxResults(pageSize); List temp = query.list(); for(Iterator ite = temp.iterator(); ite.hasNext();) { studentes.add((Student)ite.next()); } pageModel = new PageModel(); pageModel.setPageNo(pageNo); pageModel.setPageSize(pageSize); pageModel.setList(studentes); pageModel.setTotalRecords(getTotalRecords(clientIdOrName,"Student")); tx.commit(); }catch(Exception e) { e.printStackTrace(); tx.rollback(); }finally { HibernateSessionFactory.closeSession(); } return pageModel; }
public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { StudentActionForm saf = (StudentActionForm)form; PageModel pageModel = ServiceFactory.getInstance() .getAdminManager() .listStudent(saf.getPageNo(), saf.getPageSize(), saf.getClientIdOrName()); request.setAttribute("pagemodel", pageModel); return mapping.findForward("list_success"); }
<action path="/admin/student" type="edu.struts.actions.StudentAction" name="studentForm" scope="request" parameter="command" >
public class AdminBaseAction extends DispatchAction { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { if(request.getSession().getAttribute("adminId") == null) { return mapping.findForward("login"); } return super.execute(mapping, form, request, response); } }
public class LoginAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LoginActionForm lf = (LoginActionForm)form; if("student".equals(lf.getType())) { if(ServiceFactory.getInstance().getStudentManager().login(lf.getId(), lf.getPassword(), lf.getType())) { request.getSession().setAttribute("studentId", lf.getId()); ActionForward af = new ActionForward("student/main.do",true); return af; } }else if("teacher".equals(lf.getType())) { if(ServiceFactory.getInstance().getTeacherManager().login(lf.getId(), lf.getPassword(), lf.getType())) { request.getSession().setAttribute("teacherId", lf.getId()); ActionForward af = new ActionForward("teacher/main.do",true); return af; } }else if("admin".equals(lf.getType())) { if(ServiceFactory.getInstance().getAdminManager().login(lf.getId(), lf.getPassword(), lf.getType())) { request.getSession().setAttribute("adminId", lf.getId()); ActionForward af = new ActionForward("admin/main.do",true); return af; } } return mapping.findForward("login"); } }
<action path="/login" type="edu.struts.actions.LoginAction" scope="request" name="loginForm" >
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="edu.model.Student"> <!-- 描述ID生成策略 --> <id name="id"> <generator class="assigned"/> </id> <!-- 普通属性 --> <property name="name"/> <property name="password"/> <!-- 描述Student与Contact的一对一映射 --> <many-to-one name="contact" column="contact_id" unique="true" not-null="true" cascade="all" lazy="false"/> <!-- 描述Student与History的一对多映射 --> <set name="histories" table="history" lazy="true" cascade="all" inverse="true" order-by="id asc"> <key column="sid"/> <one-to-many class="edu.model.History"/> </set> <!-- 描述Student与Classes的多对多映射 --> <set name="classes" table="student_class_link" lazy="true" inverse="false" cascade="save-update"> <key column="student_id"/> <many-to-many class="edu.model.Classes" column="class_id"/> </set> </class> </hibernate-mapping>
package edu.util; import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; public class ExportDB { public static void main(String[] args) { //读取xml配置文件 Configuration cfg = new Configuration().configure(); SchemaExport export = new SchemaExport(cfg); //根据读取的xml文件导出数据表 export.create(true, true); } }
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="edu.model.History"> <id name="id"> <generator class="native"/> </id> <property name="mark"/> <many-to-one name="student" column="sid"/> <many-to-one name="clazz" column="cid" lazy="false"/> </class> </hibernate-mapping>
<filter> <filter-name>EncodingFilter</filter-name> <filter-class>edu.util.CharsetEncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Student student = (Student)HibernateSessionFactory.getSession().get(Student.class, id);
Session session = null; Transaction tx = null; Student student = null; try { //通过HibernateSessionFactory工具类获得Session对象 session = HibernateSessionFactory.getSession(); //开启事务 tx = session.beginTransaction(); //业务逻辑 student = (Student)session.get(Student.class, id); //提交事务 tx.commit(); }catch(Exception e) { e.printStackTrace(); //当业务逻辑发生异常是回滚事务 tx.rollback(); }finally { //最后关闭Session HibernateSessionFactory.closeSession(); } return student;
Student student = (Student)HibernateSessionFactory.getSession().get(Student.class,id);