今天写了一个保存数据的方法(注册)报错提示为:[12:47:06] ERROR util.JDBCExceptionReporter "[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]无法将 NULL 值插入列 'USER_CD',表 'cattle.dbo.UserInfo';该列不允许空值。INSERT 失败。"
[12:47:06] ERROR util.JDBCExceptionReporter "[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]语句已终止。"
2011-11-4 12:47:06 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]无法将 NULL 值插入列 'USER_CD',表 'cattle.dbo.UserInfo';该列不允许空值。INSERT 失败。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeInternal(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.execute(Unknown Source)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:168)
at org.hibernate.id.IdentityGenerator$InsertSelectDelegate.executeAndExtract(IdentityGenerator.java:108)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:33)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2158)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2638)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:48)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:625)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:362)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:622)
at com.commcon.daoImpl.IJDBCDaoImpl.create(IJDBCDaoImpl.java:236)
at com.cattle.daoImpl.UserInfoDaoIMPL_ss.saveUser(UserInfoDaoIMPL_ss.java:24)
at com.cattle.serice.UserInfoService_ss.saveUser(UserInfoService_ss.java:37)
at com.cattle.struts.action.UserInfoAction.register(UserInfoAction.java:152)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.commcon.Filter.FilterEncode.doFilter(FilterEncode.java:42)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
走断点也走了报错的字段确实有值 就是差不进去
[12:47:06] ERROR util.JDBCExceptionReporter "[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]语句已终止。"
2011-11-4 12:47:06 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]无法将 NULL 值插入列 'USER_CD',表 'cattle.dbo.UserInfo';该列不允许空值。INSERT 失败。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeInternal(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.execute(Unknown Source)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:168)
at org.hibernate.id.IdentityGenerator$InsertSelectDelegate.executeAndExtract(IdentityGenerator.java:108)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:33)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2158)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2638)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:48)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:625)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:362)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:622)
at com.commcon.daoImpl.IJDBCDaoImpl.create(IJDBCDaoImpl.java:236)
at com.cattle.daoImpl.UserInfoDaoIMPL_ss.saveUser(UserInfoDaoIMPL_ss.java:24)
at com.cattle.serice.UserInfoService_ss.saveUser(UserInfoService_ss.java:37)
at com.cattle.struts.action.UserInfoAction.register(UserInfoAction.java:152)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.commcon.Filter.FilterEncode.doFilter(FilterEncode.java:42)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
走断点也走了报错的字段确实有值 就是差不进去
解决方案 »
- 想学Java先从那个入手
- Myeclipse和weblogic的问题高分求解
- Exception caught while loading clients.xml: [object Error]
- axis2 hibernate整合 开发webservice
- 初学struts,中文显示的一个小问题
- Hibernate 缓存问题
- 散分~~~问各位高手问题
- struts下拉框的简单问题
- 希望高手指点,我现在很郁闷.....
- 高分请教,关于j2ee的dataSource问题
- Struts2出现HTTP Status 404 - There is no Action mapped for namespace / and action
- 使用request.getSession()时出现NullPointerException错误
HttpServletRequest request, HttpServletResponse response)
throws FileNotFoundException, IOException {
UserInfoForm userInfoForm = (UserInfoForm) form;
PrintWriter out = response.getWriter(); // 创建输出对象
// 获取用户输入的数据
String userName = request.getParameter("userName");
String pwd = request.getParameter("pwd");
String sex =request.getParameter("sex");
String Email = request.getParameter("Email");
String wenti = request.getParameter("wenti");
String answer = request.getParameter("huida");
String birthday = request.getParameter("birthday");
String provinceCd = request.getParameter("questionMaster");
String cityCd = request.getParameter("city");
String phone = request.getParameter("phone");
String comment = request.getParameter("zwjs"); // 注释 (自我介绍)
FormFile photoImagePath = userInfoForm.getPhotoPath(); // 获取图片
if (photoImagePath.getFileSize() != 0) {
HttpSession session = request.getSession();
String FileImageName = photoImagePath.getFileName();// 图片名称
int size = photoImagePath.getFileSize();// 图片大小
String contentType = photoImagePath.getContentType();// 图片类型
byte[] date = photoImagePath.getFileData();// 上传内容
int lastLength = FileImageName.lastIndexOf("."); // 重命名上传的图片名称
String fileType = FileImageName.substring(lastLength); // 获取上传图片的类型
String fileUpLoadPath = this.getServlet().getServletContext()
.getRealPath("/UserphotoPath/");// 获取系统路径 存放用户头像图片路径
String userPhoto = userName + fileType; // 重命名用户头像图片用用户的名称命名
File file = new File(fileUpLoadPath); // 判断用户头像文件夹是否存在,不存在则创建一个新的文件名称为"UserphotoPath"
if (!file.exists()) {
file.mkdir();
}
session.setAttribute("fileImageName", FileImageName);
session.setAttribute("contentType", contentType);
session.setAttribute("size", size);
FileOutputStream fo = new FileOutputStream(fileUpLoadPath + "/"
+ userPhoto); // 将要保存的地址
fo.write(date);
fo.close();
// 重命名后的文件名称:" + userPhoto
// "文件保存路径:" + fileUpLoadPath + FileImageName
// 获得系统时间(替换用户CD)
Date date2 = new Date(System.currentTimeMillis());
String userCd = new SimpleDateFormat("MMddhhmmss").format(date2); UserInfo user = new UserInfo(); // 实例化用户对象实体类
Password password = new Password(); // 实例化用户对象密码实体类
SafeQuestion safeQuestion = new SafeQuestion(); // 实例化安全问题实体类 user.setUserName(userName); // 将用户输入的数据封装到用户实体类中
user.setUserCd(Integer.parseInt(userCd));
user.setSex(sex);
user.setEmail(Email);
user.setBirthday(birthday);
user.setProvinceCd(Integer.parseInt(provinceCd));
user.setCityCd(Integer.parseInt(cityCd));
user.setScore(0); // 积分
user.setPhotoPath(userPhoto);
user.setRoleCd(2); //用户角色CODE 0:高级管理员 1:管理员 2:普通用户
user.setComment(comment);
user.setRegistDate(java.util.GregorianCalendar.getInstance()
.getTime());
// 将用户输入的数据封装到密码实体类中
password.setUserCd(Integer.parseInt(userCd));
password.setPassword(pwd);
// 将用户输入的数据封装到安全问题实体类中
safeQuestion.setUserCd(Integer.parseInt(userCd));
safeQuestion.setAnswer(answer); // 安全问题答案
safeQuestion.setQuestionCd(Integer.parseInt(wenti)); // 安全问题cd
// 开始保存数据到各个表中(涉及的表有:PASSWORD、SAFE_QUESTION、UserInfo)
boolean isFlagUserInfo = userInfoMananger_ss.saveUser(user);
boolean isFlagPassword = passwordMananger.savePassword(password);
boolean isFlagSafeQuestion = safeQuestionManager
.savesafeQuestion(safeQuestion);
if (isFlagPassword == true && isFlagSafeQuestion == true
&& isFlagUserInfo == true) {
out
.print("<script>window.alert('用户保存成功');window.history.bock();</script>");
out.flush();
out.close();
} else {
out
.print("<script>window.alert('用户保存失败');window.history.bock();</script>");
out.flush();
out.close();
}
}
return null;
}
这里如果你的userCd确实有值的话,,那你看你hibernate的映射文件中。配置的属性和列的配置是否正确。。如表的列名是否正确
<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.cattle.entity.UserInfo" table="UserInfo" schema="dbo" catalog="cattle">
<id name="userCd" type="java.lang.Integer">
<column name="USER_CD" />
<generator class="identity" />
</id>
<property name="userName" type="java.lang.String">
<column name="USER_NAME" length="20" not-null="true" />
</property>
<property name="roleCd" type="java.lang.Integer">
<column name="ROLE_CD" not-null="true" />
</property>
<property name="sex" type="java.lang.String">
<column name="SEX" length="4" not-null="true" />
</property>
<property name="photoPath" type="java.lang.String">
<column name="PHOTO_PATH" length="100" />
</property>
<property name="birthday" type="java.lang.String">
<column name="BIRTHDAY" length="50" />
</property>
<property name="provinceCd" type="java.lang.Integer">
<column name="PROVINCE_CD" />
</property>
<property name="cityCd" type="java.lang.Integer">
<column name="CITY_CD" />
</property>
<property name="email" type="java.lang.String">
<column name="EMAIL" length="40" />
</property>
<property name="score" type="java.lang.Integer">
<column name="SCORE" />
</property>
<property name="lastLoginDate" type="java.util.Date">
<column name="LAST_LOGIN_DATE" length="23" />
</property>
<property name="registDate" type="java.util.Date">
<column name="REGIST_DATE" length="23" />
</property>
<property name="comment" type="java.lang.String">
<column name="COMMENT" length="200" />
</property>
</class>
</hibernate-mapping>这是hibernate映射文件 系统生成的。应该没有问题吧。。
此外建表的时候,要 id int identity(1,1) primary key,