service层不调用dao层,大侠们帮帮忙!

guohui2323 2010-12-08 02:37:03
能进入service,我service是这样写的
private IWorkerDAO iworkerdao;
public IWorkerDAO getIworkerdao() {
return iworkerdao;
}

public void setIworkerdao(IWorkerDAO iworkerdao) {
this.iworkerdao = iworkerdao;
}
//添加查找员工信息
public int addWorker(Worker worker) {
// TODO Auto-generated method stub
System.out.println("进入service");
System.out.println("进入service:"+iworkerdao.addWorkerInfo(worker));
return iworkerdao.addWorkerInfo(worker);
}
IWorkerDAO是dao层的接口.

现在执行到System.out.println("进入service:"+iworkerdao.addWorkerInfo(worker));这句就不执行了,怎么回事,也不报错。

...全文
485 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuc0317 2010-12-17
  • 打赏
  • 举报
回复
没有注入成功吧!private IWorkerDAO iworkerdao!
在你的application-dao,service.xml 查看配置文件!
zwzzuo 2010-12-17
  • 打赏
  • 举报
回复
前边对worker的操作没有操作好
losky510609169 2010-12-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 guo98 的回复:]
save()中是否没有提交? 毕竟你使用的是INSERT ,select myid.nextval 这一步肯定不会受影响的。
[/Quote]

这为仁兄说的 差不多。。
自动生成的id
没有赋给 worker

另外,Hibernate 出错后 会 包装成HibernateException,这里已经处理过了,所以 你外层catch不到的
bill_hai 2010-12-16
  • 打赏
  • 举报
回复
是不是其他程序,或软件把表锁住了
guohui2323 2010-12-16
  • 打赏
  • 举报
回复
为什么这里用save(),不能自动提交事务呢?
guo98 2010-12-09
  • 打赏
  • 举报
回复
save()中是否没有提交? 毕竟你使用的是INSERT ,select myid.nextval 这一步肯定不会受影响的。
guohui2323 2010-12-09
  • 打赏
  • 举报
回复
我debug到这句getHibernateTemplate().save(worker); 后台打印出一句Hibernate: select myid.nextval from dual 应该说用到save()方法了 我是用自动生成id的方式存主键的
oklinsong 2010-12-09
  • 打赏
  • 举报
回复
接着往里跟啊
guohui2323 2010-12-09
  • 打赏
  • 举报
回复
谢谢大家的关注,我最新的程序:
action中: public String execute() {
iworkerservice.addWorker(worker);
return Action.SUCCESS;
}
service中: public int addWorker(Worker worker) {
System.out.println("iworkerdao="+iworkerdao);//这个测过了不是空的
return iworkerdao.addWorkerInfo(worker);
}
dao中: public int addWorkerInfo(Worker worker) {
System.out.println(worker.getWname()+"="+worker.getWsex()+"="+worker.getWbirthday());//这儿测过了也不是空,传值正确
getHibernateTemplate().save(worker);//执行到这步,程序就不动了,也不报错
return 0;
}

应该不是连接数据库的问题,我用Hibernate做的查询能正确执行并显示在页面上。

现在就是想实现添加,原来程序都能正确运行的。

拜托大家!!!!
  • 打赏
  • 举报
回复
对了也有可能是 iworkerdao 没有注入,这个需要你的spring配置文件里设置,否则就出现什么也没发生的现象。
  • 打赏
  • 举报
回复
System.out.println("进入service:"+iworkerdao.addWorkerInfo(worker));
------设置断点跟踪一下吧,这里您已经调用了一次,为什么后面还要:
return iworkerdao.addWorkerInfo(worker) //?
oklinsong 2010-12-08
  • 打赏
  • 举报
回复
没有被注入就会报空指针异常啊
zn85600301 2010-12-08
  • 打赏
  • 举报
回复
应该不是主键冲突 楼主的意思调DAO的时候程序就不执行了
楼主先看下 你的DAO 有被注入吗
或者是哪里有断点之类的
oklinsong 2010-12-08
  • 打赏
  • 举报
回复
System.out.println("进入service:"+iworkerdao.addWorkerInfo(worker));
return iworkerdao.addWorkerInfo(worker);
调用了两次iworkerdao.addWorkerInfo(worker),主键冲突了吧
Jlins 2010-12-08
  • 打赏
  • 举报
回复
return iworkerdao.addWorkerInfo(worker);
return 返回值有问题吧

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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