真晕  都用了HibernateTemplate  还取session干嘛

解决方案 »

  1.   

    public abstract class BaseHibernateDao extends HibernateDaoSupport implements
    BaseDao { private HibernateTemplate ht = null; private JdbcTemplate jdbcTemplate = null; public BaseHibernateDao() {
    createHT();
    } public List getObjectsBySql(String hql) {
    try {
    return this.getObjectsByHql(hql);
    } catch (Exception e) {
    // e.printStackTrace();
    return null;
    } } public List getObjectsByHql(String hql) {
    try {
    createHT();
    return ht.find(hql);
    } catch (Exception e) {
    // e.printStackTrace();
    // System.out.println(e);
    return null;
    }
    } public Object getObject(Class classname, String id) {
    try {
    createHT();
    return ht.get(classname, id);
    } catch (Exception e) {
    e.getMessage();
    // System.out.println(e);
    return null;
    }
    } public boolean save(Object object) {
    try {
    createHT();
    ht.saveOrUpdate(object);
    return true;
    } catch (Exception e) {
    // System.out.println(e);
    return false;
    }
    } public boolean del(Object object) {
    try {
    createHT();
    ht.delete(object);
    return true;
    } catch (Exception e) {
    System.out.println(e);
    return false;
    }
    } public boolean delAll(Object object) {
    try {
    createHT();
    ht.deleteAll((Collection) object);
    return true;
    } catch (Exception e) {
    // System.out.println(e);
    return false;
    }
    } public boolean update(Object object) {
    try {
    createHT();
    ht.update(object);
    return true;
    } catch (Exception e) {
    // System.out.println(e);
    return false;
    }
    } public void createHT() {
    if (ht == null) {
    ht = this.getHibernateTemplate();
    }
    } public HibernateTemplate getHt() {
    return ht;
    } public void setHt(HibernateTemplate ht) {
    this.ht = ht;
    } public JdbcTemplate getJdbcTemplate() {
    return jdbcTemplate;
    } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
    this.jdbcTemplate = jdbcTemplate;
    }}
      

  2.   

    代码不好贴
    spring是处理业务逻辑的
    换句话说就是中间的  以前用hibernate和struts的时候你的Dao是直接到struts的serverlet上了的吧 加了struts以后 hibernet的dao和DTo就不能跑到变现层了 所有的DAO都是spring来管理了
    所以你要写个spring的接口 然后实现这个接口 以后struts要dao就找spring要了
      

  3.   

    public List pageList(final int a, final int b, final String sql,
    final Object... Conditions) {
    try {
    createHT();
    List list = (List) ht.executeFind(new HibernateCallback() {
    public Object doInHibernate(Session arg0) throws SQLException {
    Query query = arg0.createQuery(sql);
    // System.out.println(Conditions[0] + "");
    if (!(Conditions[0].equals("con"))) {
    int i = 0;
    for (Object option : Conditions) {
    if (option instanceof Integer) {
    query.setInteger(i, (Integer) option);
    }
    if (option instanceof String) {
    query.setString(i, option.toString());
    }
    i++;
    }
    }
    if (b > 0) {
    query.setMaxResults(b);
    query.setFirstResult(a);
    }
    return query.list();
    }
    });
    return list;
    } catch (Exception e) {
    return new ArrayList();
    } }