首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

struts2.X经验4-struts2与hibernate连接数据库案例分析

2013-02-28 
struts2.X心得4--struts2与hibernate连接数据库案例分析以下只列举出主要的类文件以及struts2重要的知识类

struts2.X心得4--struts2与hibernate连接数据库案例分析

以下只列举出主要的类文件以及struts2重要的知识类或配置,感兴趣的朋友可以留言,本人讲项目源码发过去 package www.csdn.action; import java.util.List; importwww.csdn.domain.Admin;importwww.csdn.service.AdminService;importwww.csdn.service.AdminServiceImpl; import com.opensymphony.xwork2.ActionSupport; public class AdminAction extendsActionSupport{        /**        *        */       privatestatic final long serialVersionUID = -8739112121666773546L;             privateString adminName;       privateString adminPassword;       privateAdmin entity;       privateList<Admin> list;       privateint id;             privateAdminService service = new AdminServiceImpl();             publicAdmin getEntity() {              returnentity;       }             publicList<Admin> getList() {              returnlist;       }        publicvoid setId(int id) {              this.id= id;       }        publicvoid setAdminName(String adminName) {              this.adminName= adminName;       }             publicString getAdminName() {              returnadminName;       }        publicvoid setAdminPassword(String adminPassword) {              this.adminPassword= adminPassword;       }                    //登录方法       publicString login(){              entity= service.login(adminName, adminPassword);              if(entity!= null){                     returnSUCCESS;              }else{                     returnLOGIN;                                  }       }       //查找所有方法       publicString list(){              list= service.getAllObjects(Admin.class);              if(list!= null){                     returnSUCCESS;              }else{                     returnERROR;                                 }       }       //删除方法       publicString delete(){              entity= service.getObjectById(Admin.class, id);              service.deleteObject(entity);                     returnSUCCESS;       }       //按id查询方法       publicString find(){              entity= service.getObjectById(Admin.class, id);                     returnSUCCESS;       }       //增加方法       publicString save(){              entity= new Admin(adminName, adminPassword);              service.saveObject(entity);                     returnSUCCESS;       }       //更新方法       publicString update(){              entity= service.getObjectById(Admin.class, id);              entity.setAdminPassword(adminPassword);              service.updateObject(entity);                     returnSUCCESS;       }} package www.csdn.dao; import java.util.List; import org.hibernate.Session;import org.hibernate.Transaction; import www.csdn.domain.Admin;import www.csdn.utils.BaseHibernateDao;import www.csdn.utils.HibernateSessionFactory; /*** *dao实现层,这里将事务的操作跟关闭session的操作放到了dao层,实际开发中的规范是应该放在事务层, * 因为事务处理属于事务 */public class AdminDaoImpl extendsBaseHibernateDao implements AdminDao {        @Override       publicvoid deleteObject(Admin entity) {              Transactiontx = null;              try{                     Sessionsession = getSession();                     tx= session.beginTransaction();                     session.delete(entity);                     tx.commit();              }catch (Exception e) {                     tx.rollback();                     thrownew RuntimeException("删除所有错误"+e);              }finally {                     HibernateSessionFactory.closeSession();              }       }        @Override       publicvoid deleteObjectById(Integer id) {              Transactiontx = null;              try{                     Sessionsession = getSession();                     tx= session.beginTransaction();                     session.delete(id);                     tx.commit();              }catch (Exception e) {                     tx.rollback();                     thrownew RuntimeException("根据id错误"+e);              }finally {                     HibernateSessionFactory.closeSession();              }       }        @SuppressWarnings("unchecked")       @Override       publicList<Admin> getAllObjects(Class<Admin> entityClass) {              try{                     returngetSession().createQuery("from Admin").list();              }catch (Exception e) {                     thrownew RuntimeException("查找错误"+e);              }finally {                     HibernateSessionFactory.closeSession();              }       }/** * * 改方法作废,因为与getObjectById用的是同一个session, * 实际应用中都是先查出某一个实体,然后使用getObject()方法删除 */       @Override       publicAdmin getObjectById(Class<Admin> className, Integer id) {              try{                     return(Admin) getSession().get(className, id);              }catch (Exception e) {                     thrownew RuntimeException("根据id查找错误"+e);              }finally {                     HibernateSessionFactory.closeSession();              }       }        @SuppressWarnings("unchecked")       @Override       publicList<Admin> getObjects(Class<Admin> clazz, int from, int size) {              try{                     returngetSession().createQuery("fromAdmin").setFirstResult((from-1)*size).setMaxResults(size).list();              }catch (Exception e) {                     thrownew RuntimeException("分页查询错误"+e);              }finally {                     HibernateSessionFactory.closeSession();              }       }        @Override       publicvoid saveObject(Admin entity) {              Transactiontx = null;              try{                     Sessionsession = getSession();                     tx= session.beginTransaction();                     session.save(entity);                     tx.commit();              }catch (Exception e) {                     tx.rollback();                     thrownew RuntimeException("保存错误"+e);              }finally {                     HibernateSessionFactory.closeSession();              }       }        @Override       publicvoid updateObject(Admin entity) {              Transactiontx = null;              try{                     Sessionsession = getSession();                     tx = session.beginTransaction();                     session.update(entity);                     tx.commit();              }catch (Exception e) {                     tx.rollback();                     thrownew RuntimeException("更新错误"+e);              }finally {                     HibernateSessionFactory.closeSession();              }       }       @Override       publicAdmin login(String adminName, String adminPassword) {              try{                     //这里可以用getString也可以用getParameter()方法                     return(Admin) getSession().createQuery("from Admin a where a.adminName = :nameand a.adminPassword = :pass ").setString("name",adminName).setString("pass",adminPassword).uniqueResult();              }catch (Exception e) {                     thrownew RuntimeException("登录错误"+e);              }finally {                     HibernateSessionFactory.closeSession();              }       } } <?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC   "-//ApacheSoftware Foundation//DTD Struts Configuration 2.3//EN"   "http://struts.apache.org/dtds/struts-2.3.dtd"><struts>     <package name="test" namespace="/csdn"extends="struts-default">        <!-- 登录action-->      <action name="adminLogin"class="www.csdn.action.AdminAction"        method="login">        <!-- 这里redirectACtion相当于转发,其使用$字符带值赋给的变量需要在action类中有set和get方法 -->        <result name="success"type="redirectAction">           csdn/adminList.action?adminName=${entity.adminName}</result>        <result name="login">/index.jsp</result>      </action>        <!-- 查询所有action-->      <action name="adminList"class="www.csdn.action.AdminAction"        method="list">        <result name="success">/list.jsp</result>      </action>        <!-- 删除action-->      <action name="adminDelete"class="www.csdn.action.AdminAction"        method="delete">        <result name="success"type="redirectAction">csdn/adminList.action?adminName=${           entity.adminName }</result>      </action>        <!-- 按id查询action-->      <action name="adminFind"class="www.csdn.action.AdminAction"         method="find">        <result name="success">/find.jsp</result>      </action>        <!-- 添加action-->      <action name="adminSave"class="www.csdn.action.AdminAction"        method="save">        <result name="success"type="redirectAction">csdn/adminList.action?adminName=${           entity.adminName }</result>      </action>        <!-- 更新action-->      <action name="adminUpdate"class="www.csdn.action.AdminAction"        method="update">        <result name="success"type="redirectAction">csdn/adminList.action?adminName=${           entity.adminName }</result>      </action>    </package>  </struts>  package www.csdn.service; import java.util.List; importwww.csdn.dao.AdminDao;importwww.csdn.dao.AdminDaoImpl;importwww.csdn.domain.Admin; public class AdminServiceImpl implementsAdminService {        AdminDaoadminDao = new AdminDaoImpl();             @Override       publicAdmin login(String adminName, String adminPassword) {              returnadminDao.login(adminName,adminPassword);       }        @Override       publicvoid deleteObject(Admin entity) {              adminDao.deleteObject(entity);       }        @Override       publicvoid deleteObjectById(Integer id) {              adminDao.deleteObjectById(id);       }        @Override       publicList<Admin> getAllObjects(Class<Admin> entityClass) {              returnadminDao.getAllObjects(entityClass);       }        @Override       publicAdmin getObjectById(Class<Admin> className, Integer id) {              returnadminDao.getObjectById(className, id);       }        @Override       publicList<Admin> getObjects(Class<Admin> clazz, int from, int size) {              returnadminDao.getObjects(clazz, from, size);       }        @Override       publicvoid saveObject(Admin entity) {              adminDao.saveObject(entity);       }        @Override       publicvoid updateObject(Admin entity) {              adminDao.updateObject(entity);       } }


热点排行