我用struts做了一个客户资料管理系统,主要实现增\删\修\查.
当我增加一条记录的时候,点击查看可以正常的显示----
如果我再增加一条记录,点击查看的时候就不能显示这条记录,但是已经将数据插入到了数据库中.然后重新打开IE,再查看就可以看到第二次插入的数据.
我对这个问题很是困惑,希望得到高人相助啊!!!这个问题怎么解决呢?
当我增加一条记录的时候,点击查看可以正常的显示----
如果我再增加一条记录,点击查看的时候就不能显示这条记录,但是已经将数据插入到了数据库中.然后重新打开IE,再查看就可以看到第二次插入的数据.
我对这个问题很是困惑,希望得到高人相助啊!!!这个问题怎么解决呢?
[email protected]
String sql;
sql = "INSERT INTO nation (nationcode, nationname) VALUES (?, ?)";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
conn = ds.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, nation.getNationcode());
pstmt.setString(2, nation.getNationname());
pstmt.executeUpdate();
pstmt.close();
conn.commit();
}
catch (SQLException sqle) {
close(rs);
close(pstmt);
rollback(conn);
sqle.printStackTrace();
throw sqle;
}
finally
{
close(conn);
}
}
public void insert(Nation nation) throws SQLException {
String sql;
sql = "INSERT INTO nation (nationcode, nationname) VALUES (?, ?)";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
conn = ds.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, nation.getNationcode());
pstmt.setString(2, nation.getNationname());
pstmt.executeUpdate();
pstmt.close();
conn.commit();
}
catch (SQLException sqle) {
close(rs);
close(pstmt);
rollback(conn);
sqle.printStackTrace();
throw sqle;
}
finally
{
close(conn);
}
}
上面的是我工程中DAO层其中的一个NationDao 中的insert方法,大家帮我看一下吧
private ActionForward performSave(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response)
{
NationForm form = (NationForm) actionForm; try
{
DataSource ds = (DataSource) servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY); NationDAO nationDAO = new NationDAO(ds); Nation nation = new Nation();
org.apache.commons.beanutils.BeanUtils.populate(nation, org.apache.commons.beanutils.BeanUtils.describe(form));
int strutsAction = form.getStrutsAction();
if (strutsAction == NationForm.ADD)//判段entry.jsp中获得的参数是否与NationForm中定义的ADD相等
{
String nationcode = nation.getNationcode();
if (nationDAO.retrieve(nationcode) == null)//用nationDAO中的retrieve在数据库中遍历从模型中取出的数据,如果不存在,就插入
{
nationDAO.insert(nation);
}
else//如果nationcode不为空,表示数据库中已经存在记录,则调用sqlDuplicateError方法,显示已经存在错误信息
{
sqlDuplicateError(request, "Nation");
return mapping.findForward("failure");
}
}
else if (strutsAction == NationForm.EDIT)//判段entry.jsp中获得的参数是否与NationForm中定义的ADD相等
{
nationDAO.update(nation);
}
}
catch (Exception e)
{
generalError(request, e);
return mapping.findForward("failure");
}
return mapping.findForward("success");
}