我想在
JSP
页面中向数据库表
staff
插入一条记录:页面能跳转到
addStaffSuccess.jsp
;
刷新页面时,添加的记录能在页面中显示出来,我还以为成功了,于是我想通过企业管理器打开数据库表看是不是数据库表更新了,发现数据库表不显示数据,我插入的是第二条记录,于是我让它返回首行,首行正常显示。我用查询分析器查询
Staff
表的数据,一直是“正在执行批查询状态
………
”说明我对数据库的操作影响到了数据库,但是出了我不知道的异常或错误,但是又不报错,我不知道怎么去找原因。忘了,当我停止
tomcat
时,数据表正常显示,但插入的数据没有显示在表里,说明没有插入。难道是我没停止
tomcat
前,数据库一直在更新么?
我用的环境是,
eclipse3.2+Myeclipse5.5 + MS SQL server2000+ tomcat5.5
我添加了
struts
和
hibernate
支持,各个持久化类和
DAO
类
,
是通过映射后
hibernate
自动生成的。
Action
代码是我写的,不足道有错没,请指正。
添加后,返回原页面,显示了添加的信息:(但数据库没更新,郁闷!)
数据库:
staff (staffid,//
主键
staffname,//not null
password,//not null
departmentname;//
允许空
sex;//
允许空
email;//
允许空
mobile;//
允许空
)
在
StaffDAO
里面:(这是
hibernate
映射数据库表后自动生成的方法)
public
void
save(Staff transientInstance) {
log
.debug(
"saving Staff instance"
);
try
{
getSession().save(transientInstance);
log
.debug(
"save successful"
);
}
catch
(
RuntimeException
re) {
log
.error(
"save failed"
, re);
throw
re;
}
}
在
AddStaffAction
里面:
public
ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//
获得表单信息;
AddStaffForm addStaffForm = (AddStaffForm) form;
//
TODO
Auto-generated method stub
String staffid = addStaffForm.getStaffid();
String staffname = addStaffForm.getStaffname();
String departmentname = addStaffForm.getDepartmentname();
String sex = addStaffForm.getSex();
String password =
new
String(
"000000"
);
//
转换字符格式
try
{
staffid =
new
String(staffid.getBytes(
"ISO-8859-1"
),
"GB2312"
);
staffname =
new
String(staffname.getBytes(
"ISO-8859-1"
),
"GB2312"
);
departmentname =
new
String(departmentname.getBytes(
"ISO-8859-1"
),
"GB2312"
);
sex =
new
String(sex.getBytes(
"ISO-8859-1"
),
"GB2312"
);
password =
new
String(password.getBytes(
"ISO-8859-1"
),
"GB2312"
);
}
catch
(UnsupportedEncodingException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
Staff staff =
new
Staff();
staff.setStaffid(staffid);
staff.setStaffname(staffname);
staff.setPassword(password);
staff.setDepartmentname(departmentname);
staff.setSex(sex);
try
{
StaffDAO dao =
new
StaffDAO();
dao.save(staff);
}
catch
(Exception e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
return
mapping.findForward(
"addStaffSuccess"
); }