Spring + hibernate(MSSQL2000)不能保存数据问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 09:23:41
public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext axt
=new ClassPathXmlApplicationContext("applicationContext.xml");
BbsuserDAO dao=(BbsuserDAO)axt.getBean("BbsuserDAO");
Bbsuser b=new Bbsuser();
//b.setAge(5);
b.setPassword("777777");
b.setUsername("Springdao test");
b.setId(500);
Transaction tran=dao.getSessionFactory().openSession().beginTransaction();
dao.save(b);
tran.commit();
System.out.println("tttttttttttttttt");
}

不报错,但是存不进数据.
我在SAVE里加了
public void save(Bbsuser transientInstance) {
log.debug("saving Bbsuser instance");
try {
getHibernateTemplate().save(transientInstance);
System.out.println("seccess");
} catch (RuntimeException re) {
log.error("save failed", re);

你必须保证你的b是处于持久态,处于瞬态或游离态的时候都不行

1. 先确定axt.getBean("BbsuserDAO"); 中 BbsuserDAO 是否在 xml 文件中拼写正确, 第一个字母大小写是否正确.
2. 试着改写一下transction 的生成方式.

/**
* 采用hibernate.properties配置文件的初始化代码:
* Configuration config = new Configuration();
* config.addClass(TUser.class);
*/
//采用hibernate.cfg.xml配置文件
//请注意初始化Configuration时的差异:
// 1.Configuration的初始化方式
// 2.xml文件中已经定义了Mapping文件,因此无需再Hard Coding导入
// POJO文件的定义
Configuration config = new Configuration().configure();
SessionFactory sessionFactory =
config.buildSessionFactory();
session = sessionFactory.openSession();
Transaction trans = session.beginTransaction();

这样可能是事务没有提交,你可以手动的提交事务,或者将事务托给Spring进行管理,这样就可以了。
Transaction trans = session.beginTransaction();
然后save后调用 trans.commit() 。记住开始和提交要配对,不能多也不能少
补充-----------------
那你看看日志,有没有异常信息?

数据库问题

事务提交了么?