分享

需要回答的问题

 Riley2222 2012-08-17
1.spring管理的对象实例化的问题,为什么要自己去手动的获取实例
IParamDao paramDAO = (IParamDao)SpringSourceUtil.getBean("paramDAO");

---------------------------------------------------------dao在spring里面的配置------------------------------------------
<bean id="paramDAO" class="com.huateng.topafd.alertManagement.dao.impl.ParamDao">
<property name="sessionFactory">
<ref bean="topafsSessionFactory" />
</property>
</bean>

-----------------------------------------SpringSourceUtil代码------------------------------------------------------------------
public class SpringSourceUtil {

private static ApplicationContext appCtx = new ClassPathXmlApplicationContext(
"applicationContext-base.xml");

public static Object getBean(String beanId) {
return appCtx.getBean(beanId);
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------
==================================================================================

2.hibernate的众多查询工具的使用如HibernateTemplate(),HLQ,等的区别??以及spring管理下的session获取。(继承了HibernateDaoSupport的类可以直接获取Session session= this.getSession();自己获取session与spring 管理的session的关系和区别在哪里??)


3。使用HibernateTemplate()查询的结果,其返会的list里面是一个个object的数组,而且每个字段占一个位置。见debug的截图。
public List<MgrCommonHolidayVO> findHolidayvo() {
StringBuffer sql=new StringBuffer(FIND_HOLIDAYVO_SQL); 
        List list = new ArrayList();
        final String sqlStr = sql.toString(); 
          list= getHibernateTemplate().executeFind(new HibernateCallback() {
              public Object doInHibernate(Session s) throws HibernateException,
                      SQLException {
                  List list = null;
                  try {
                      Query query = s.createSQLQuery(sqlStr); 
                      list = query.list();
                  } catch (Exception e) {
                      log.error(e);
                  }
                  return list;
              }
          });
          return list;
}


-------------------------------------------debug的截图-------------------------------------------------------------------------、
 
 
=========================================
hibernate 的查询使用的是在VO里面加上另外一个VO的方式来实现多表查询
参考
hql是这样的
  Query query=session.createQuery("from MrMParamVO p,MrRuleVO r where " +
  "p.ruleId=r.ruleId and r.ruleStat='1'");
MrMParamVO 里面用get,set设置了MrRuleVO 的实例

public class MrMParamVO implements Serializable {
    private String orgId;
    ………………

    private MrRuleVO ruleVO;

返回的list列表里面存的是一个object[2] 每一个object都是一个对象


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多