站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题Hibernate3.0 保存数据不成功..大家帮忙呀..

Hibernate3.0 保存数据不成功..大家帮忙呀..

摘要: Hibernate3.0 保存数据不成功..大家帮忙呀..


我是用hibernate syschronizer生成map文件的.
admin.hbm如下:
<?xml version="1.0"?>
hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >


name="Admin"
table="ADMIN"
>
true
name="Id"
type="integer"
column="ID"
>



name="Name"
column="NAME"
type="string"
not-null="false"
length="100"
/>






adminado如下:
package aa.dao;



import java.util.HashMap;
import java.util.Iterator;
import java.util.ListIterator;
import java.util.Map;

import org.hibernate.Criteria;
import org.hibernate.EntityMode;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Expression;
import org.hibernate.mapping.List;

import aa.base.BaseAdmiinDAO;
import aa.Admiin;
import aa.HibernateSessionFactory;
public class AdmiinDAO extends BaseAdmiinDAO implements aa.dao.iface.AdmiinDAO
{

public AdmiinDAO()
{
}

public AdmiinDAO(Session session)
{
super(session);
}

public static void main(String args[])
{
try{

Configuration cfg = newConfiguration().configure();

SessionFactory sFactory = cfg.buildSessionFactory() ;

Session session = sFactory.openSession();
Admin admin = new Admiin();
admin.setName("拉登");
session.save(admin);
session.flush();

}
catch(Exception e)
{e.printStackTrace();}

}

}

运行此文件后报如下信息:
Hibernate: select max(ID) from ADMIIN
Hibernate: insert into ADMIIN (NAME, ID) values (?, ?)

数据库里不能保存呀..大家帮帮忙呀...



上面ADMIIN 就是admin.书写错误呀..

请大家帮帮忙呀..困了我好几天了..


你忘记开事务并且提交了,改成:

Session session = sFactory.openSession();
Admin admin = new Admiin();
admin.setName("拉登");
session.beginTransaction();
session.save(admin);
session.flush();
session.getTranscation().commit();




忘记提交了吧,呵呵
调用commit()就可以了,呵呵



多谢hbwhwang(catmiw的ID已经停用,现在用这个),usxue(尘飞扬)

果然是如此呀.为什么一定要开事务呢?

我不开事务作如下修改也可以.能解释下吗?
在main()里这样写也可以的.
_RootDAO.initialize();
AdmiinDAO admiindao =new AdmiinDAO();
Admiin admiin = new Admiin();
admiin.setName("test");
admiindao.save(admiin);


↑返回目录
前一篇: 有什么比较好的在线编辑器,
后一篇: 熟悉sina里的pixviewer组件和JS语法的进,谢谢