现在的位置: 首页 > 综合 > 正文

ExtJS实战(3)-spring

2012年03月11日 ⁄ 综合 ⁄ 共 2495字 ⁄ 字号 评论关闭
 

       上一篇文章我们看到了hibernate的作用,但是我们并没有贴出具体的数据访问层的代码,这是因为我们既然要使用这么多框架,当然就希望它们能够“黏合”的很好,譬如,我们不想使用代码处理事务,也就是说想使用声明式事务。这当然就是Spring大显身手的地方了。我们来看一看数据访问层的代码,还是面向接口编程:

 

1.下面是一个接口,它告诉外界可以做哪些事情,譬如按条件分页查询房屋信息,增加,修改,删除房屋信息,得到符合条件的房屋总数等!

package org.leno.houseHire.dao;

 

import java.util.List;

 

import org.leno.houseHire.action.Condition;

import org.leno.houseHire.dao.House;

 

 

public interface IHouseDAO {

 

    public List<House> findAllHouse(Condition cond,final int start ,final int limit);

    public House findById(int id);

    public void addHouse(House house);

    public void editHouse(House house);

    public int delHouse(List<String> ids);

    public long getTotalNums(Condition cond);

    public List<Area> getAllAreas();

    public List<Street> getAllStreets(int aid);

    public String getAreaNameById(int id);

    public String getStreetNameById(int id);

    public User getUserById(int id);

    public Street getStreetById(int id);

}

 

2.下面是一个利用Hibernate访问数据库的DAO实现,我们看到,它还继承了HibernateDaoSupport这个类,这是SpringHibernate提供的一个帮助支持类,它不仅封装了Hiberntate的实现,还对Hibernate操作涉及的事务进行统一管理。

package org.leno.houseHire.dao;

 

import java.sql.SQLException;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

 

import org.hibernate.Criteria;

import org.hibernate.HibernateException;

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.criterion.Order;

import org.hibernate.criterion.Projections;

import org.hibernate.criterion.Restrictions;

import org.leno.houseHire.action.Condition;

import org.leno.houseHire.dao.House;

import org.springframework.orm.hibernate3.HibernateCallback;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

 

public class HouseDAOImpl extends HibernateDaoSupport implements IHouseDAO {

 

    public void addHouse(House house) {

        getHibernateTemplate().save(house);

    }

 

    public void editHouse(House house) {

        getHibernateTemplate().update(house);

 

    }

 

    @SuppressWarnings("unchecked")

    public List<House> findAllHouse(Condition cond, final int start,

            final int limit) {

        final String title = cond.getTitle();

        final int room = cond.getRoom();

        final int ting = cond.getTing();

        final int areaId = cond.getAreaId();

        final int streetId = cond.getStreetId();

        final double priceStart = cond.getPriceStart();

        final double priceEnd = cond.getPriceEnd();

        final String booktime = cond.getBooktime();

        final String sort = cond.getSortCond();

        // 更通用可以换成DetachedCriteria

        return (List<House>) getHibernateTemplate().execute(

                new HibernateCallback() {

<

抱歉!评论已关闭.