hibernate保存类,session.save();并commit了事务,为什么数据库中没有数据,数据库中自动增长的ID增加了1
publicclassHibernateUtil{privatestaticSessionFactorysessionFactory;static{try{session...
public class HibernateUtil
{
private static SessionFactory sessionFactory;
static
{
try
{
sessionFactory = new Configuration().configure().buildSessionFactory();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public static Session openSession()
{
Session session = sessionFactory.openSession();
return session;
}
public static void close(Session session)
{
if(null != session)
{
session.close();
}
}
}
//添加学生
@Override
public void addStudent(Student student)
{
Session session = HibernateUtil.openSession();
Transaction tx = session.beginTransaction();
try
{
session.save(student);
tx.commit();
}
catch(Exception ex)
{
if(null != tx)
{
System.out.println("添加学生脏数据回滚");
tx.rollback();
}
}
finally
{
HibernateUtil.close(session);
}
}
控制台每次都打印出“添加学生脏数据回滚” 展开
{
private static SessionFactory sessionFactory;
static
{
try
{
sessionFactory = new Configuration().configure().buildSessionFactory();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public static Session openSession()
{
Session session = sessionFactory.openSession();
return session;
}
public static void close(Session session)
{
if(null != session)
{
session.close();
}
}
}
//添加学生
@Override
public void addStudent(Student student)
{
Session session = HibernateUtil.openSession();
Transaction tx = session.beginTransaction();
try
{
session.save(student);
tx.commit();
}
catch(Exception ex)
{
if(null != tx)
{
System.out.println("添加学生脏数据回滚");
tx.rollback();
}
}
finally
{
HibernateUtil.close(session);
}
}
控制台每次都打印出“添加学生脏数据回滚” 展开
4个回答
展开全部
猜测一下,应该是你的entity设值不对。
session.save(一个设值后Entity);
方便的话能否将代码贴出来。
session.save(一个设值后Entity);
方便的话能否将代码贴出来。
更多追问追答
追问
控制台输出:
Hibernate: insert into student_tab (student_loginName, student_loginPassword, student_name, student_age, student_sex, student_address, in_schoolDate, examination_date, student_idCardNumber, student_phone, student_email, student_qq, student_introduction, student_state, teacher_id, school_id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
添加学生脏数据回滚
追答
你这是插入了脏数据,数据库回滚了。数据库里肯定没有值
你看看你设置的字段中是否有不符合要求的数据,比如说主键的产生方式,某些字段不为空等等。
只要是看Student.hbm.xml这个文件和你生成student对象的地方做个对比。
展开全部
事务回滚了 你没catch 所以没有报错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,检查这个sutdent对象中是否有数据。然后检查hibernate映射文件中映射的数据库列是否跟student实体bean一一对应。如果都检查正确了,那就要看控制台输出的时候报什么错。针对具体的错误来检查问题所在。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
事务对象未创建
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询