我自己写了一个测试类测试DAO,结果遇到了getHibernateTemplate()为空的问题,没法操作数据库。以下是我的dao类和测试类。DAO
package com.ssh.dao;import org.springframework.context.ApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.ssh.hibernate.pojo.IGroup;public class GroupDAO extends HibernateDaoSupport{
private static GroupDAO _instance = null;

private GroupDAO(){

}

public static GroupDAO getInstance(){
if(_instance==null)
_instance = new GroupDAO();
return _instance;
}

public int saveGroup(IGroup ig){
int result = -1;
System.out.println(getHibernateTemplate());
getHibernateTemplate().save(ig);
return result;
}
}TEST
package com.ssh.test;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;import com.ssh.dao.GroupDAO;
import com.ssh.hibernate.pojo.IGroup;public class TestGroupDAO {
public void testSaveGroup(){
IGroup ig = new IGroup();
ig.setMemo("ewrewrw");
ig.setNameEn("ee");
ig.setNameZh("ee");
int result = GroupDAO.getInstance().saveGroup(ig);
System.out.println(result);
}
public static void main(String[] args){
TestGroupDAO t = new TestGroupDAO();
t.testSaveGroup();
}
}一天了,还没找到什么原因,请大家指点。谢谢!

解决方案 »

  1.   

    根本就不是你那样用的,你不能自己去new一个dao,将dao交给spring管理,然后通过spring容器来获得它
      

  2.   

    应该是spring配置文件中没有配置操作hibernate的sessionFaction类
      

  3.   

    没有在你的DAO中注入类似这样的一段代码
    <bean id="ModelDAO" class="org.giis.dao.impl.ModelDAOImpl">
    <property name="sessionFactory">
    <ref bean="SessionFactory" />
    </property>
    </bean>
      

  4.   

    ok了!zjf405(crazy stone)说的对。谢谢大家的帮助。