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
原创粉丝点击