高分求答案用hibernate保存数据到mysql中为什么数据保存不到数据库

myzengbeibei 2009-12-02 09:50:28
public class SaveTelphonedAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TablePhoneForm tablephoneform=(TablePhoneForm)form;
//将值存入到TelphoneTable对象
TelphoneTable telphonetable=new TelphoneTable();
System.out.println("======="+tablephoneform.getNumber());
try {
BeanUtils.copyProperties(telphonetable, tablephoneform);

} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//调用业务逻辑层
UserBiz biz=new UserBiz();
if(biz.savenumber(telphonetable)){
return mapping.findForward("savenumber");
}else{
return mapping.getInputForward();
}

}




/*
* 输入监听用户电话号码.
*/
public boolean savenumber(TelphoneTable telphonetable){
boolean flag=false;
userdao=new UserDao();
try {
Transaction tran=HibernateSessionFactory.getSessionFactory()
.openSession().beginTransaction();
tran.commit();
userdao.savenumber(telphonetable);
flag=true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}


//保存监听电话号码
public boolean savenumber(TelphoneTable telphoneTable) throws Exception{
/* boolean flag=false;
List list=new ArrayList();
session=HibernateSessionFactory.getSession();
Transaction tran=session.beginTransaction();
session.save(telphoneTable);
tran.commit();*/
boolean flag=false;
// TelphoneTable saveTelphoneTale =null;
try{
session=HibernateSessionFactory.getSession();
System.out.println("-- "+telphoneTable.getNumber());
session.save(telphoneTable);
// Query query=session.createQuery("insert into telphone_table values(222)");


// saveTelphoneTale =(TelphoneTable)session.get(TelphoneTable.class,telphoneTable.getNumber());
// if(saveTelphoneTale!=null){
// saveTelphoneTale.setNumber(saveTelphoneTale.getNumber()+telphoneTable.getNumber());
// session.update(saveTelphoneTale);
// }else{

// }
tran.commit();
flag=true;
}catch (Exception ex) {
tran.rollback();
flag=false;
throw ex;
}finally{
HibernateSessionFactory.closeSession();
return flag;
}

}



hibernate方言配置数据库用的是mysql5.0

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>


后台打印出来没有存入值 但是对象已经取得值
-- 555555555555555555
Hibernate: insert into mdc.telphone_table values ( )


...全文
243 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
myzengbeibei 2009-12-09
  • 打赏
  • 举报
回复
谢谢大家跟帖
myzengbeibei 2009-12-09
  • 打赏
  • 举报
回复
自个找到了 数据表没主键
Eiychun1021 2009-12-03
  • 打赏
  • 举报
回复
开一下是不是你的映射有问题?
lovebin_bin 2009-12-03
  • 打赏
  • 举报
回复
tran.commit();
userdao.savenumber(telphonetable);
是不是写反了
你先提交事物再保存,这样是不会保存到数据库里面去的
hl289313608 2009-12-03
  • 打赏
  • 举报
回复
是不是事务方面出问题 你用Spring 的AOP了吗??
myzengbeibei 2009-12-02
  • 打赏
  • 举报
回复
再顶
myzengbeibei 2009-12-02
  • 打赏
  • 举报
回复
在顶...
myzengbeibei 2009-12-02
  • 打赏
  • 举报
回复
自己顶上去...
Landor2004 2009-12-02
  • 打赏
  • 举报
回复
hibernate执行各种数据库操作的时候:
1 如果hibernate设置了autocommit为true,那么save之后需要flush,才能同步到数据库;提交事务也可以提交到数据库

2 如果hibernate设置了autocommit为false,那么必须提交事务才能同步到数据库

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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