SSH 干嘛怎报java.lang.NullPointerException

li463968565 2010-04-20 11:49:24
public List getOne()
{
return this.getHibernateTemplate().executeFind(new HibernateCallback()
{

public Object doInHibernate(Session session) throws HibernateException,
SQLException
{
String sql="from TEmp as a inner join a.TPart";
Query q=session.createQuery(sql);
return q.list();
}
});
}

public List getOnePart()
{
TEmp emp=null;
System.out.println("dddddddd");
List ar=this.empDAO.getOne();
List arr=new ArrayList();
for(int i=0;i<ar.size();i++)
{
Object a[]=(Object[]) ar.get(i);
emp=(TEmp) a[0];
arr.add(emp);
}
return arr;
}
public static void main(String[] args)
{
EmpImpl a=new EmpImpl();
List ar=a.getOnePart();
for(int i=0;i<ar.size();i++){
TEmp emp=(TEmp) ar.get(i);

System.out.println("名称:"+emp.getEName());
}
}

Exception in thread "main" java.lang.NullPointerException
at com.svse.struts.impl.EmpImpl.getOnePart(EmpImpl.java:53)
at com.svse.struts.impl.EmpImpl.main(EmpImpl.java:66)

数据库有值~~总是报空指针异常~~~
...全文
131 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
li463968565 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lxd520123 的回复:]
哎。。
你要用spring,首先要加载配置文件
配置文件加载方式有好几种,你网上看看
但是你用main方法测试,首先告诉你你用new 来获取对象,是得不到spring的数据连接的
要用spring数据连接,你得用junit测试
你的测试类需要继承AbstractTransactionalDataSourceSpringContextTests
关于这个类用法,你去网上找资料,看懂了你的……
[/Quote]

我理解你的意思了~~~谢谢~~
bunrise 2010-04-20
  • 打赏
  • 举报
回复
哎。。
你要用spring,首先要加载配置文件
配置文件加载方式有好几种,你网上看看
但是你用main方法测试,首先告诉你你用new 来获取对象,是得不到spring的数据连接的
要用spring数据连接,你得用junit测试
你的测试类需要继承AbstractTransactionalDataSourceSpringContextTests
关于这个类用法,你去网上找资料,看懂了你的代码就不会有NULL了
usb00fa 2010-04-20
  • 打赏
  • 举报
回复
空指针异常
li463968565 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 li7134551921 的回复:]
你的session哪来的?有没有初始化,把代码贴全
[/Quote] 这个自己取的名称 可以随便写的
li463968565 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lxd520123 的回复:]
你告诉你你怎么加载spring配置文件的
[/Quote]

<!-- 员工管理 -->
<bean id="TEmpDAO" class="com.svse.struts.dao.TEmpDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="empImpl" class="com.svse.struts.impl.EmpImpl">
<property name="empDAO" ref="TEmpDAO"></property>
</bean>

闭目鱼 2010-04-20
  • 打赏
  • 举报
回复
你的session哪来的?有没有初始化,把代码贴全
bunrise 2010-04-20
  • 打赏
  • 举报
回复
你告诉你你怎么加载spring配置文件的
li463968565 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lxd520123 的回复:]
晕死。。才发现你用的main方法测试,用了junit了吗?
你把你的main方法所在的类发上来,
[/Quote]他们都是在同一个类里面~~
EmpImpl a=new EmpImpl();
bunrise 2010-04-20
  • 打赏
  • 举报
回复
晕死。。才发现你用的main方法测试,用了junit了吗?
你把你的main方法所在的类发上来,
li463968565 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hoennhi 的回复:]
注入失败,com.svse.struts.impl.EmpImpl里面加一个对empDAO的set方法
[/Quote]
private TEmpDAO empDAO=null;

public TEmpDAO getEmpDAO()
{
return empDAO;
}

public void setEmpDAO(TEmpDAO empDAO)
{
this.empDAO = empDAO;
}
cikyhong 2010-04-20
  • 打赏
  • 举报
回复
注入失败,com.svse.struts.impl.EmpImpl里面加一个对empDAO的set方法
li463968565 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lxd520123 的回复:]
empDAO为NULL吧,empDAO注入失败
[/Quote]
<bean id="TEmpDAO" class="com.svse.struts.dao.TEmpDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="empImpl" class="com.svse.struts.impl.EmpImpl">
<property name="empDAO" ref="TEmpDAO"></property>
</bean>
bunrise 2010-04-20
  • 打赏
  • 举报
回复
empDAO为NULL吧,empDAO注入失败

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧