我自己写了一个测试类测试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();
}
}
一天了,还没找到什么原因,请大家指点。谢谢!
------解决方案--------------------
根本就不是你那样用的,你不能自己去new一个dao,将dao交给spring管理,然后通过spring容器来获得它
------解决方案--------------------
应该是spring配置文件中没有配置操作hibernate的sessionFaction类
------解决方案--------------------
没有在你的DAO中注入类似这样的一段代码
<bean id= "ModelDAO " class= "org.giis.dao.impl.ModelDAOImpl ">
<property name= "sessionFactory ">
<ref bean= "SessionFactory " />
</property>
</bean>