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都是一个对象 |
|