Struts+Hibernate常用工具类
来源:互联网 发布:linux 局域网 编辑:程序博客网 时间:2024/06/03 20:13
建立相关工具包
1.分页信息包:存储页面分页信息
2.Hibernate工具包:用于创建session
3.BeanFactory包:用于创建Bean
分页信息中除了结果集以外,还要包含其他的一些索引信息,便于前台操作
package com.houlu.drp.utils;import java.util.List;/** * 分页信息类 * @author Administrator * @param <T> * */public class PageModel<T> { //结果集 private List<T> list; //记录数 private int totalRecords; //每页多少条数据 private int pageSize; //第几页 private int pageNo; //总页数 private int totalPages; //首页 private int topPageNo; //前一页 private int previousPageNo; //下一页 private int nextPageNo; public List<T> getList() { return list; } public void setList(List<T> list) { this.list = list; } public int getTotalRecords() { return totalRecords; } public void setTotalRecords(int totalRecords) { this.totalRecords = totalRecords; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getPageNo() { return pageNo; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } public int getTopPageNo() { return topPageNo; } public void setTopPageNo(int topPageNo) { this.topPageNo = topPageNo; } public int getPreviousPageNo() { return previousPageNo; } public void setPreviousPageNo(int previousPageNo) { this.previousPageNo = previousPageNo; } public int getNextPageNo() { return nextPageNo; } public void setNextPageNo(int nextPageNo) { this.nextPageNo = nextPageNo; } public int getTotalPages() { return totalPages; } public void setTotalPages(int totalPages) { this.totalPages = totalPages; }}
HibernateUtil用于建立Session,过程如下:
1.利用hibernate.cfg.xml文件建立Configuration类。
2.利用Configuration建立Session的工厂,factory作为该类的属性
以上两步在静态代码块中完成。
3.对外提供取得session的方法
package com.houlu.drp.utils;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class HibernateUtils { private static SessionFactory factory; static{ try { //读取hibernate.cfg.xml文件 Configuration cfg = new Configuration().configure(); //建立SessionFactory工厂 factory = cfg.buildSessionFactory(); }catch(Exception e) { e.printStackTrace(); throw new java.lang.RuntimeException(e); } } public static SessionFactory getSessionFactory(){ return factory; } /** * 取得Session * @return */ public static Session getSession() { return factory.openSession(); } public static void closeSession(Session session) { if (session != null) { if (session.isOpen()) { session.close(); } } }}
package com.houlu.drp.utils;import java.util.HashMap;import java.util.List;import java.util.Map;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;import com.houlu.drp.usermgr.dao.UserDao;import com.houlu.drp.usermgr.dao.impl.UserDao4SqlServerImpl;import com.houlu.drp.usermgr.service.UserService;import com.houlu.drp.usermgr.service.impl.UserService4BeanFactoryImpl;BeanFactory在没使用Spring的情况下用于建立对象,该类利用单例模式生成,将生成的bean存入map中,其他人从这里取bean时,利用newInstance生成,该方法生成的对象同时也是单例的/** * Bean工厂 * @author Administrator * */public class BeanFactory { private static BeanFactory instance = new BeanFactory(); //存放产品{key=产品编号,value=具体产品实例} private Map beans = new HashMap(); //读取配置文件 private Document doc; private BeanFactory() { try { doc = new SAXReader().read(Thread.currentThread().getContextClassLoader().getResourceAsStream("beanFactoryConfig.xml")); } catch (DocumentException e) { e.printStackTrace(); } } public static BeanFactory getInstance() { if (instance == null) { synchronized (BeanFactory.class) { if (instance == null) { instance = new BeanFactory(); } } } return instance; } /** * 根据产品标识得到产品 * @param id * @return */ public Object getBean(Class c) { synchronized(beans) { //如果在Map存在已经创建的产品返回 if (beans.containsKey(c.getName())) { return beans.get(c.getName()); } //查找xml文件中id属性等于某值的bean标签 Object object = null; try { Element elt = (Element)doc.selectObject("//bean[@id=\"" + c.getName() + "\"]"); object = Class.forName(elt.attributeValue("class")).newInstance(); //将创建好的产品放入到Map中 beans.put(c.getName(), object); } catch (Exception e) { e.printStackTrace(); } return object; } } public static void main(String[] args) { // ItemService itemService = (ItemService)BeanFactory.getInstance().getBean(ItemService.class); // System.out.println(itemService); UserDao userDao = (UserDao)BeanFactory.getInstance().getBean(UserDao.class); System.out.println(userDao); UserService userService1 = (UserService)BeanFactory.getInstance().getBean(UserService.class); UserService userService2 = (UserService)BeanFactory.getInstance().getBean(UserService.class); System.out.println(userService1==userService2); }}
对应的xml配置文件
<?xml version="1.0" encoding="UTF-8"?><beans> <bean id="com.houlu.drp.usermgr.dao.UserDao" class="com.houlu.drp.usermgr.dao.impl.UserDao4SqlServerImpl"/> <bean id="com.houlu.drp.usermgr.service.UserService" class="com.houlu.drp.usermgr.service.impl.UserService4BeanFactoryImpl"/></beans>
0 0
- Struts+Hibernate常用工具类
- Hibernate常用工具类
- Hibernate学习之(Hibernate 常用工具)
- Struts+Hibernate
- 常用工具类
- 常用工具类
- 常用工具类
- 常用工具类
- 常用工具类
- 常用工具类
- 常用工具类
- 常用工具类
- 常用工具类
- 常用工具类
- 常用工具类
- 常用工具类
- 常用工具类
- 常用工具类
- redhat使用163的yum源
- iOS新手引导页的实现,源码
- java8新特性
- 重拾编程之路--冒泡排序算法
- JAVA中的String类--字符链接运算符“+”
- Struts+Hibernate常用工具类
- IOS(UI)_AutoLayout(自动布局)01
- org.hibernate.MappingException: duplicate property mapping:
- 搭建树莓派python开发环境
- WPF Popup 窗体弹出瞬间看到桌面背景
- 项目管理3-项目经理需要坚持的原则
- Python 面向对象
- 重拾编程之路--插入排序算法
- 堆和栈的几点区别