Spring + Struts + Hibernate 简单封装通用接口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Spring + Struts + Hibernate 简单封装通用接口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7837字,纯文字阅读大概需要12分钟。
内容图文
1、BaseDao
public interface BaseDao<T> { /** * 获取符合条件的记录数 * @param filter * @param sortName * @param sortOrder * @return int */publicint findCount(String filter, String sortName, String sortOrder); /** * 获取分页数据 * @param filter * @param sortName * @param sortOrder * @param startSize * @param pageSize * @return List<T> */public List<T> findGrid(String filter, String sortName, String sortOrder, int startSize, int pageSize); /** * 添加实体类对象 * @param entity * @return int */publicint add(T entity); /** * 根据主键获取实体类对象 * @param id * @return T */public T getById(int id); /** * 更新实体类对象 * @param entity * @return boolean */publicboolean update(T entity); /** * 删除实体类对象 * @param id * @return boolean */publicboolean delete(int id); }
2、BaseDaoImpl
public class BaseDaoImpl<T> implements BaseDao<T>{ private Class<T> clazz = null;// 表示当前的类型private SessionFactory sessionFactory; /** * 通过反射技术获得子类T的真实值 * 由于在子类中首先调用的是父类的构造方法 */ @SuppressWarnings("unchecked") public BaseDaoImpl(){ // 获取当前new的对象的泛型的父类类型 ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass(); // 获取第一个类型参数的真实类型 clazz = (Class<T>) pt.getActualTypeArguments()[0]; } public Session getSession() { return sessionFactory.openSession(); } publicvoid setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } @Override publicint findCount(String filter, String sortName, String sortOrder) { Session session=getSession(); StringBuffer hql=new StringBuffer(""); hql.append("from ").append(clazz.getSimpleName()).append(" where ").append(filter).append(" order by ").append(sortName).append(" ").append(sortOrder); int num=0; try{ Query query = session.createQuery(hql.toString()); List<T> list=query.list(); num=list.size(); }catch(Exception ex){ ex.printStackTrace(); }finally{ session.close(); } return num; } @Override public List<T> findGrid(String filter, String sortName, String sortOrder, int startSize, int pageSize) { Session session=getSession(); List<T> list=null; StringBuffer hql=new StringBuffer(""); hql.append("from ").append(clazz.getSimpleName()).append(" where ").append(filter).append(" order by ").append(sortName).append(" ").append(sortOrder); try{ Query query =session.createQuery(hql.toString()); query.setFirstResult(startSize); //设置这一页显示的第一条记录的索引 query.setMaxResults(pageSize); //这一页显示的记录个数 list=query.list(); }catch(Exception ex){ ex.printStackTrace(); }finally{ session.close(); } return list; } @Override publicint add(T entity) { int num=0; //标识注册是否成功 Session session=getSession(); try{ Transaction trans=session.beginTransaction(); num=Integer.parseInt(session.save(entity).toString());//在缓存中保存数据,受影响行数 trans.commit();//写入数据库表 }catch (Exception e) { e.printStackTrace(); }finally{ session.close(); } return num; } @Override public T getById(int id) { T entity=null; Session session=getSession(); try{ entity=(T)session.get(clazz,id); }catch(Exception ex){ ex.printStackTrace(); }finally{ session.close(); } return entity; } @Override publicboolean update(T entity) { boolean flag=false; Session session = getSession(); try{ Transaction trans=session.beginTransaction(); session.update(entity); trans.commit(); flag=true; }catch(Exception ex){ ex.printStackTrace(); }finally{ session.close(); } return flag; } @Override publicboolean delete(int id) { boolean flag=false; Session session=getSession(); try{ T entity=(T)session.get(clazz,id); Transaction trans=session.beginTransaction(); session.delete(entity); trans.commit(); flag=true; }catch(Exception ex){ ex.printStackTrace(); }finally{ session.close(); } return flag; } }
3、BaseService
public interface BaseService<T> { public Map<String,Object> findGrid(String filter, String sortName, String sortOrder, int startSize, int pageSize); publicint add(T entity); public T getById(int id); publicboolean update(T entity); publicboolean delete(int id); }
4、BaseServiceImpl
public class BaseServiceImpl<T> implements BaseService<T> { private BaseDao baseDao; public BaseDao getBaseDao() { return baseDao; } publicvoid setBaseDao(BaseDao baseDao) { this.baseDao = baseDao; } @Override public Map<String, Object> findGrid(String filter, String sortName, String sortOrder, int startSize, int pageSize) { // TODO Auto-generated method stub Map<String,Object> result = new HashMap<String,Object>(); int total=baseDao.findCount( filter, sortName, sortOrder); List<T> rows=baseDao.findGrid(filter, sortName, sortOrder, startSize, pageSize); result.put("total",total); result.put("rows",rows); return result; } @Override publicint add(T entity) { // TODO Auto-generated method stubreturn baseDao.add(entity); } @Override public T getById(int id) { // TODO Auto-generated method stubreturn (T) baseDao.getById(id); } @Override publicboolean update(T entity) { // TODO Auto-generated method stubreturn baseDao.update(entity); } @Override publicboolean delete(int id) { // TODO Auto-generated method stubreturn baseDao.delete(id); } }
5、BaseAction
public class BaseAction<T> extends ActionSupport{ // 取得request对象protected HttpServletRequest request = null; // 取得response对象protected HttpServletResponse response = null; //service类对象protected BaseService baseService; //实体类对象protected T entity; //主键protectedint id; //主键字符串idsprotected String ids; //每页的记录数protectedint pageSize; //第几页protectedint pageNumber; //排序字段protected String sortName; //排序方式protected String sortOrder; //返回结果protected Result result=new Result(false, "操作失败"); //过滤条件protected String filter=null; //查询字段 //protected String fieldlist = null;public BaseService getBaseService() { return baseService; } publicvoid setBaseService(BaseService baseService) { this.baseService = baseService; } public T getEntity() { return entity; } publicvoid setEntity(T entity) { this.entity = entity; } publicint getId() { return id; } publicvoid setId(int id) { this.id = id; } public String getIds() { return ids; } publicvoid setIds(String ids) { this.ids = ids; } publicint getPageSize() { return pageSize; } publicvoid setPageSize(int pageSize) { this.pageSize = pageSize; } publicint getPageNumber() { return pageNumber; } publicvoid setPageNumber(int pageNumber) { this.pageNumber = pageNumber; } public String getSortName() { return sortName; } publicvoid setSortName(String sortName) { this.sortName = sortName; } public String getSortOrder() { return sortOrder; } publicvoid setSortOrder(String sortOrder) { this.sortOrder = sortOrder; } protectedvoid grid(){ int startSize=(pageNumber-1) * pageSize; toAjax(baseService.findGrid(filter, sortName, sortOrder, startSize, pageSize)); } protectedvoid save(){ if(id!=0){ boolean flag=baseService.update(entity); if(flag){ result.setFlag(true); result.setMsg("操作成功"); } toAjax(result); }else{ int i=baseService.add(entity); if(i > 0){ result.setFlag(true); result.setMsg("操作成功"); } toAjax(result); } } protectedvoid getById() { toAjax(baseService.getById(id)); } protectedvoid delete(){ String[] array = ids.split(","); boolean flag=false; for(String id : array){ flag=baseService.delete(Integer.parseInt(id)); } if(flag){ result.setFlag(true); result.setMsg("操作成功"); } toAjax(result); } /** * 转换成ajax可以接收的数据 * @param data */protectedvoid toAjax(Object data) { Gson gson= new Gson(); final String json= gson.toJson(data); System.out.println("打印数据:"+json); try { response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); response.setHeader("cache-control", "no-cache"); response.setCharacterEncoding("UTF-8"); response.flushBuffer(); response.getWriter().write(json); response.getWriter().flush(); response.getWriter().close(); } catch (IOException e) { e.printStackTrace(); } } }
这是小编的原创随笔,请尊重原创,若是转载请注明出处,谢谢。
原文:http://www.cnblogs.com/liuzhenping/p/8087648.html
内容总结
以上是互联网集市为您收集整理的Spring + Struts + Hibernate 简单封装通用接口全部内容,希望文章能够帮你解决Spring + Struts + Hibernate 简单封装通用接口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】