关于 Hibernate的一个小例子 急求解决

jbutton 2006-05-26 11:43:58
大家好 刚学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.

...全文
150 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jbutton 2006-05-26
  • 打赏
  • 举报
回复
==================================Admin.hbm.xml======================================
<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

<!-- DO NOT EDIT: This is a generated file that is synchronized -->
<!-- by MyEclipse Hibernate tool integration. -->
<!-- Created Sun Mar 21 15:37:48 CST 2004 -->
<hibernate-mapping package="com">

<class name="Admin" table="admin">
<id name="id" column="id" type="java.lang.Integer">
<generator class="identity"/>
</id>

<property name="cname" column="cname" type="java.lang.String" />
<property name="cpassword" column="cpassword" type="java.lang.String" />
</class>

</hibernate-mapping>

这是我的 Admin.hbm.xml 是不是哪里错了?
rickhunterchen 2006-05-26
  • 打赏
  • 举报
回复
could not insert: [com.Admin]
错误已经显示了。
看看你的Admin.hbm.xml文件。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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