急!!!!在添加记录的时候,总是提示错误插入ID是空,JSP中应该是自动获取ID的吧?
到低怎么搞?
小弟是初学者.
给个建议吧!!
非常感谢.....
到低怎么搞?
小弟是初学者.
给个建议吧!!
非常感谢.....
解决方案 »
- 关于servlet和socket通信的问题
- 请教关于JSP请求出错及页面异常的问题
- 送分 新手求教一段JS代码
- 在修改界面里如何取得下拉列表里所要修改(对应)的值???
- Session莫名丢失得问题!
- servlet的简单问题!(急!在线等)
- JDBC-ODBC的问题
- JSP里面怎么处理中文名(包括简体或者繁体)的上传文件??有谁碰到过这样的问题,进来看看!
- 如何实现不同请求页面传送到同一个后台方法里面。而且能根据页面需求实现各自的方法。
- 在jsp页面中实现数据的暂存功能!
- 怎么将页面的数据存到TXT文件中
- jsp页面从actionform里读数据,怎么自动更新actionfomrm里的数据信息?
id int(2) not null auto_increment
就是request.getpraram
public static void addservgrpnew(
String servGrpName,String servNbr,String servFlag,String state,String stateTime,String voc,
String custom,String procName,String lastName,String lastProcName,String mmsId)
{
ServGrpNewDAO servgrpnewdao = new ServGrpNewDAO();
ServGrpNew sgn = new ServGrpNew();
//sgn.setServGrpId(Long.parseLong(servGrpId));
System.out.println(""+servGrpName+"");
sgn.setServGrpName(servGrpName);
sgn.setServNbr(servNbr);
sgn.setServFlag(servFlag);
sgn.setState(state);
Date statetime = new Date(stateTime);//Time样式为yyyy-MM-dd////
sgn.setStateTime(statetime);
Byte s=new Byte(voc);
sgn.setVoc(s);
Byte co=new Byte(custom);
sgn.setCustom(co);
sgn.setProcName(procName);
sgn.setLastName(lastName);
sgn.setLastProcName(lastProcName);
Long mmsid=Long.parseLong(mmsId);
sgn.setMmsId(mmsid);
// System.out.println(sgn.getServGrpId());
servgrpnewdao.save(sgn);//添加保存!!!!!
if(sgn.getServGrpId()!=null){
System.out.println(sgn.getServGrpId());
System.out.println(sgn.getLastName());
System.out.println(sgn.getServFlag());
System.out.println(sgn.getServNbr());
System.out.println(sgn.getState());
System.out.println(sgn.getStateTime());
}
else
{
System.out.print("Add serv_grop failure!_____");
}
}
/////////////////////////////////添加结束!!!!!!!!!!!!!!
package serv;import java.util.Date;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.LockMode;
import org.hibernate.Query;
import org.hibernate.criterion.Example;/**
* Data access object (DAO) for domain model class ServGrpNew.
*
* @see serv.ServGrpNew
* @author MyEclipse Persistence Tools
*/public class ServGrpNewDAO extends BaseHibernateDAO {
private static final Log log = LogFactory.getLog(ServGrpNewDAO.class);
// property constants
public static final String SERV_GRP_NAME = "servGrpName";
public static final String SERV_NBR = "servNbr";
public static final String SERV_FLAG = "servFlag";
public static final String STATE = "state";
public static final String VOC = "voc";
public static final String CUSTOM = "custom";
public static final String PROC_NAME = "procName";
public static final String LAST_NAME = "lastName";
public static final String LAST_PROC_NAME = "lastProcName";
public static final String MMS_ID = "mmsId"; public void save(ServGrpNew transientInstance) {
log.debug("saving ServGrpNew instance");
try {
getSession().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
} public void delete(ServGrpNew persistentInstance) {
log.debug("deleting ServGrpNew instance");
try {
getSession().delete(persistentInstance);
log.debug("delete successful");
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
} public ServGrpNew findById(java.lang.Long id) {
log.debug("getting ServGrpNew instance with id: " + id);
try {
ServGrpNew instance = (ServGrpNew) getSession().get(
"serv.ServGrpNew", id);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
} public List findByExample(ServGrpNew instance) {
log.debug("finding ServGrpNew instance by example");
try {
List results = getSession().createCriteria("serv.ServGrpNew").add(
Example.create(instance)).list();
log.debug("find by example successful, result size: "
+ results.size());
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
} public List findByProperty(String propertyName, Object value) {
log.debug("finding ServGrpNew instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from ServGrpNew as model where model."
+ propertyName + "= ?";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, value);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
} public List findByServGrpName(Object servGrpName) {
return findByProperty(SERV_GRP_NAME, servGrpName);
} public List findByServNbr(Object servNbr) {
return findByProperty(SERV_NBR, servNbr);
} public List findByServFlag(Object servFlag) {
return findByProperty(SERV_FLAG, servFlag);
} public List findByState(Object state) {
return findByProperty(STATE, state);
} public List findByVoc(Object voc) {
return findByProperty(VOC, voc);
} public List findByCustom(Object custom) {
return findByProperty(CUSTOM, custom);
} public List findByProcName(Object procName) {
return findByProperty(PROC_NAME, procName);
} public List findByLastName(Object lastName) {
return findByProperty(LAST_NAME, lastName);
} public List findByLastProcName(Object lastProcName) {
return findByProperty(LAST_PROC_NAME, lastProcName);
} public List findByMmsId(Object mmsId) {
return findByProperty(MMS_ID, mmsId);
} public List findAll() {
log.debug("finding all ServGrpNew instances");
try {
String queryString = "from ServGrpNew";
Query queryObject = getSession().createQuery(queryString);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}
} public ServGrpNew merge(ServGrpNew detachedInstance) {
log.debug("merging ServGrpNew instance");
try {
ServGrpNew result = (ServGrpNew) getSession().merge(
detachedInstance);
log.debug("merge successful");
return result;
} catch (RuntimeException re) {
log.error("merge failed", re);
throw re;
}
} public void attachDirty(ServGrpNew instance) {
log.debug("attaching dirty ServGrpNew instance");
try {
getSession().saveOrUpdate(instance);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
} public void attachClean(ServGrpNew instance) {
log.debug("attaching clean ServGrpNew instance");
try {
getSession().lock(instance, LockMode.NONE);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}
}
<%
} else if (request.getParameter("action").equals("addsave")) {
%>
<!--添加业务保存开始-->
<%
System.out.println(servgrid);
String servgrpname = new String(request.getParameter("servgrpname").getBytes("ISO-8859-1"), "gb2312");
String servnamber = new String(request.getParameter("servnamber").getBytes("ISO-8859-1"), "gb2312");
String servflag = new String(request.getParameter("servflag").getBytes("ISO-8859-1"), "gb2312");
String servstate = new String(request.getParameter("servstate").getBytes("ISO-8859-1"), "gb2312");
String servtime = new String(request.getParameter("servtime").getBytes("ISO-8859-1"), "gb2312");
String voc = new String(request.getParameter("voc").getBytes("ISO-8859-1"), "gb2312");
String custom = new String(request.getParameter("custom").getBytes("ISO-8859-1"), "gb2312");
String procname = new String(request.getParameter("procname").getBytes("ISO-8859-1"), "gb2312");
String lastprocname = new String(request.getParameter("lastprocname").getBytes("ISO-8859-1"), "gb2312");
String uplastprocname = new String(request.getParameter("uplastprocname").getBytes("ISO-8859-1"), "gb2312");
String mmsid = new String(request.getParameter("mmsid").getBytes("ISO-8859-1"), "gb2312");
ServGrpNew.addservgrpnew(servgrpname,servnamber,servflag,servstate,servtime,voc,custom,procname,lastprocname,uplastprocname,mmsid);
out.println("<p>添加成功</p><p><a class=\"add\" href=\"index.jsp\">返回</a><br><a class=\"add\" href=\"index.jsp?action=add\">继续添加</a></p>");
%>
<!--业务保存结束-->
<id name="servGrpId" type="java.lang.Integer">
<column name="id" />
<generator class="native"></generator>
</id>
-------------
<name="servGrpId"> 与 <column name="id" /> 映射么?
是这样的
<id name="servGrpId" type="java.lang.Long">
<column name="serv_grp_id" precision="18" scale="0" />
<generator class="identity" />
</id>
你可能在insert的的时候 sql语句错误或者是得到的变量错误.
LZ建议你找点关键的代码贴出来好不 看的我头疼
<id name="servGrpId" type="java.lang.Long">
<column name="serv_grp_id" precision="18" scale="0" />
<generator class="native" />
</id>
调用addservgrpnew()函数,而addservgrpnew()调用save()保存信息
save()是用Hibernate映射生成的
应该不会有问题
我在addservgrpnew()这个里面测试的时候输出的servGrpId为空
具体是这样的:
JSP里面代码:
<%
System.out.println(servgrid);
String servgrpname = new String(request.getParameter("servgrpname").getBytes("ISO-8859-1"), "gb2312");
String servnamber = new String(request.getParameter("servnamber").getBytes("ISO-8859-1"), "gb2312");
String servflag = new String(request.getParameter("servflag").getBytes("ISO-8859-1"), "gb2312");
String servstate = new String(request.getParameter("servstate").getBytes("ISO-8859-1"), "gb2312");
String servtime = adate.toString();
String voc = new String(request.getParameter("voc").getBytes("ISO-8859-1"), "gb2312");
String custom = new String(request.getParameter("custom").getBytes("ISO-8859-1"), "gb2312");
String procname = new String(request.getParameter("procname").getBytes("ISO-8859-1"), "gb2312");
String lastprocname = new String(request.getParameter("lastprocname").getBytes("ISO-8859-1"), "gb2312");
String uplastprocname = new String(request.getParameter("uplastprocname").getBytes("ISO-8859-1"), "gb2312");
String mmsid = new String(request.getParameter("mmsid").getBytes("ISO-8859-1"), "gb2312");
ServGrpNew.addservgrpnew(servgrpname,servnamber,servflag,servstate,servtime,voc,custom,procname,lastprocname,uplastprocname,mmsid);
out.println("<p>添加成功</p><p><a class=\"add\" href=\"index.jsp\">返回</a><br><a class=\"add\" href=\"index.jsp?action=add\">继续添加</a></p>");
%>
addservgrpnew():
public static void updatesaveserv(String servGrpId,
String servGrpName,String servNbr,String servFlag,String state,String stateTime,String voc,
String custom,String procName,String lastName,String lastProcName,String mmsId)
{
ServGrpNewDAO servgrpnewdao = new ServGrpNewDAO();
ServGrpNew sgn = new ServGrpNew();
sgn=servgrpnewdao.findById(Long.parseLong(servGrpId));/////按业务号查询 sgn.setServGrpId(Long.parseLong(servGrpId));
sgn.setServGrpId(Long.parseLong(servGrpId));
sgn.setServGrpName(servGrpName);
sgn.setServNbr(servNbr);
sgn.setServFlag(servFlag);
sgn.setState(state);
Date statetime = new Date(stateTime);//Time样式为yyyy-MM-dd////
sgn.setStateTime(statetime);
Byte s=new Byte(voc);
sgn.setVoc(s);
Byte co=new Byte(custom);
sgn.setCustom(co);
sgn.setProcName(procName);
sgn.setLastName(lastName);
sgn.setLastProcName(lastProcName);
Long mmsid=Long.parseLong(mmsId);
sgn.setMmsId(mmsid);
servgrpnewdao.save(sgn);//添加保存!!!!!
System.out.println(sgn.getLastName());
System.out.println(sgn.getServFlag());
System.out.println(sgn.getServNbr());
System.out.println(sgn.getState());
System.out.println(sgn.getStateTime());
System.out.println(sgn.getServGrpName());
}
}
save():..........................
public void save(ServGrpNew transientInstance) {
log.debug("saving ServGrpNew instance");
try {
getSession().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
无法将 NULL 值插入列 'serv_grp_id',表 'ldtest.dbo.SERV_GRP_NEW';该列不允许空值。INSERT 失败。
<column name="id" /> ------- 这个column name指的是你数据库中表的字段名
<generator class="native"></generator>
</id>你的数据库定义的字段名是 "id" ,你却把配置中的名称改为"serv_grp_id",会正确么?!!
让ID为最后一条记录+1
但是我怎么样才能取得最后一条的ID呢?
是不是可以通过分页的信息取得最后一条的ID号呢?
不过还是空啊
晕了
有个问题想问一下发贴者,一开始你要是没有把字段设为自动增量.为什么你自动生成的hbm中oid为identity 呢
<id name="servGrpId" type="java.lang.Long">
<column name="serv_grp_id" precision="18" scale="0" />
<generator class="identity" />
</id>