关于 Hibernate的一个小例子 急求解决
大家好 刚学Hibernate 碰到这样的问题 请大家 帮下忙
我用的是 Eclipse+MyEcipse
数据库是 MSsql
我做一个简单的 例子往数据库插入一条记录
我在页面输入 一个 cname 和cpassword的时候
报一个500错误 (错误信息在最下面)
数据库表 admin:
id 主键 int
cname char
cpassword char
以下是自动生成的文件
hibernate-cfg.xml
Admin.hbm.xml
AbstractAdmin.java
Admin.java
HibernateSessionFactory.java
==============================================
RegAction.java
在ActionForm没有验证
其他代码没动
我只在 Action中写了一点代码
==================================RegAction.java=========================================
public class RegAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
RegForm regForm = (RegForm) form;
if(regForm.getCname()==null||regForm.getCpassword()==null){
return mapping.findForward("regfail");
}else{
//通过sessionfactory创建session对象
Session session=HibernateSessionFactory.currentSession();
//po层
Admin ad=new Admin();
//将formbean传递给PO
ad.setCname(regForm.getCname());
ad.setCpassword(regForm.getCpassword());
//创建事务对象,通过session创建
Transaction ts=session.beginTransaction();
session.save(ad);
ts.commit();
return mapping.findForward("regok");
}
}
}
==================================我的JSP页面======================================
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-template" prefix="template" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-nested" prefix="nested" %>
<html>
<head>
<title>JSP for regForm form</title>
</head>
<body>
<html:form action="/reg">
cname : <html:text property="cname"/><html:errors property="cname"/><br/>
cpassword : <html:text property="cpassword"/><html:errors property="cpassword"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>
================================================================================
---------------------------------------错误信息提示--------------------------------------
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: could not insert: [com.Admin]
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
org.hibernate.exception.GenericJDBCException: could not insert: [com.Admin]
org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:82)
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:70)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1777)
org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:2178)
org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:34)
org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239)
org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:240)
org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:160)
org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:95)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId
(DefaultSaveOrUpdateEventListener.java:184)
org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173)
org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69)
org.hibernate.impl.SessionImpl.save(SessionImpl.java:481)
org.hibernate.impl.SessionImpl.save(SessionImpl.java:476)
com.my.struts.action.RegAction.execute(RegAction.java:63)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.