SSH插入数据,报空指针???

SSH做了一个小例子,save的时候报空指针,主要是hibernate封装jdbc时报空指针,代码如下:
ACTION:[color=red]自动装配不行,我new出来的,有问题么?[/color]UserService userService = new UserService();
UserDao userDao = new UserDao();
User user = new User();
user.setName(name);
user.setPassword(password);
user.setEmail(email);
user.setPhone(phone);
user.setCompany(company);
user.setAddress(address);
user.setCreateTime(new Date());
user.setModificationTime(new Date());

[color=red]37行------------- userDao.save(user)[/color]

暂时没调用service,dao的代码:
@Repository
public class UserDao extends HibernateDao {

}

[color=red]HibernateDao里面的save部分代码:[/color]
public void save(T o) {
getHibernateTemplate().saveOrUpdate(o);

}

[color=red]spring.xml:[/color]



















org.hibernate.dialect.MySQLDialect
true
update
thread

false
true
true
true
50
50
true



<!-- 配置事务管理器 -->



<!-- 支持@Transactional -->

报错的代码就是空指针,没头绪啊:
java.lang.NullPointerException

com.shop.dao.base.HibernateDao.save(HibernateDao.java:672)
com.shop.action.RegisterAction.execute(RegisterAction.java:37)

[color=red]前辈们指导指导。。。愁死我了[/color]

aa1aa3
爱上一条鱼 参考这个文档最后的bean配置 http://wenku.baidu.com/view/4934c36f1eb91a37f1115c7f.html
接近 8 年之前 回复
aa1aa3
爱上一条鱼 然后你代码里只要有getter setter 就可以直接用了service和dao了 不需要new出来
接近 8 年之前 回复
aa1aa3
爱上一条鱼 一般SSH这些bean都交给spring管了吧。。。
接近 8 年之前 回复

9个回答

[code="java"]ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");
UserDao userDao = ctx.getBean("userDao",UserDao.class);[/code]
手敲的不知道拼错了没有

ll89308839
ll89308839 ApplicationContext 就是spring的对象工厂,它会初始化所有的bean,并帮你装配 getBean就直接拿到了装配过的对象了
接近 8 年之前 回复
ithoney
ithoney 这样是可以,但能注入dao进来么?
接近 8 年之前 回复

[quote]自动装配不行,我new出来的,有问题么?UserService userService = new UserService();
UserDao userDao = new UserDao(); [/quote]

自己手动new 出来的对象是不受 Spring 管理的!
也得不到 容器的资源,比如 数据库连接等,
具体写法 可以参见 上面那个仁兄 代码!

zzxstudynumber11
zzxstudynumber11 建议LZ先了解spring再用它,不然你真的是发春--乱来…
接近 8 年之前 回复

为什么不把userService交给spring管理?在spring里把userService userDao给配上

ithoney
ithoney 难道是用一个DAO都要在spring里面配一下?
接近 8 年之前 回复

检查页面与你的获取的名称是否一致。

new肯定不行,你既然ssh了,dao就应该让spring帮你托管。

ithoney
ithoney 自动装配不行?为什么呢?@Autowired注入不进来...
接近 8 年之前 回复

直接交给spring管理,既然是ssh。你这样new出来,页面传过来的值根本就接受不到。

debug一下先,看看你的字段里面是否获得前台传过来的值

UserDao userDao = new UserDao();
。。。瞎了狗眼

xiaobadi
心如刀割 既然都shh了,还用ApplicationContext 来实例
7 年多之前 回复

ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");
UserDao userDao = ctx.getBean("userDao",UserDao.class);

正解!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问