BookDAO.java
-------------
...
public void save(Book transientInstance) {
Session session = null;
Transaction tx = null;
try {
session = this.getSession();
tx = session.beginTransaction();
session.save(transientInstance);
tx.commit();
log.debug("save successful");
} catch (RuntimeException re) { log.error("save failed", re);
tx.rollback();
throw re;
}finally{
if(session != null)
{
session.close();
}
}
} public void update(Book detachedInstance) {
Session session = null;
Transaction tx = null;
try {
session = this.getSession();
tx = session.beginTransaction();
session.update(detachedInstance);
tx.commit();
log.debug("update successful");
} catch (RuntimeException re) {
tx.rollback();
throw re;
}finally{
if(session != null)
{
session.close();
}
}
} public Book findById( java.lang.String id) { try {
Book instance = (Book) getSession()
.get("bookStore.book", id);
return instance;
} catch (RuntimeException re) { throw re;
}
}
页面viewBook.jsp是:
序号 书名 价格 点击
1 jsp开发 20.0 55
...
现在我在程序里每次当用户点击这个书名时,执行代码为:
BookDAO bookDAO = new BookDAO();
Book b = bookDAO.findById(request.getParameter("book_id"));
b.setViewTimes(b.getViewTimes() + 1);
bookDAO.update(b);
...
结果发现,当页面的点击数随着点击的次数增加时出现以下奇怪问题1.比如viewBook.jsp页面现在为序号 书名 价格 点击
1 jsp开发 20.0 55
...点击进去,然后再通过导航链接访问viewBook.jsp发现,上面那行的点击次数仍为55,未改变。这种情况不是100%,有时会正常更新。2.如果第一条中的正常,那么常会出现这种情况
序号 书名 价格 点击
1 jsp开发 20.0 58
...
点击进去一次,通过导航链接再访问viewBook.jsp,现在页面为
序号 书名 价格 点击
1 jsp开发 20.0 59
...
再点击进去一次,通过导航链接再访问viewBook.jsp,现在却回到
序号 书名 价格 点击
1 jsp开发 20.0 58
...
关了浏览器再来仍然是58.我用的hibernate3.0,不知是我的DAO的update方法的问题,还是IE问题,这个奇怪的问题使我的项目无法完成,请各位帮忙。
-------------
...
public void save(Book transientInstance) {
Session session = null;
Transaction tx = null;
try {
session = this.getSession();
tx = session.beginTransaction();
session.save(transientInstance);
tx.commit();
log.debug("save successful");
} catch (RuntimeException re) { log.error("save failed", re);
tx.rollback();
throw re;
}finally{
if(session != null)
{
session.close();
}
}
} public void update(Book detachedInstance) {
Session session = null;
Transaction tx = null;
try {
session = this.getSession();
tx = session.beginTransaction();
session.update(detachedInstance);
tx.commit();
log.debug("update successful");
} catch (RuntimeException re) {
tx.rollback();
throw re;
}finally{
if(session != null)
{
session.close();
}
}
} public Book findById( java.lang.String id) { try {
Book instance = (Book) getSession()
.get("bookStore.book", id);
return instance;
} catch (RuntimeException re) { throw re;
}
}
页面viewBook.jsp是:
序号 书名 价格 点击
1 jsp开发 20.0 55
...
现在我在程序里每次当用户点击这个书名时,执行代码为:
BookDAO bookDAO = new BookDAO();
Book b = bookDAO.findById(request.getParameter("book_id"));
b.setViewTimes(b.getViewTimes() + 1);
bookDAO.update(b);
...
结果发现,当页面的点击数随着点击的次数增加时出现以下奇怪问题1.比如viewBook.jsp页面现在为序号 书名 价格 点击
1 jsp开发 20.0 55
...点击进去,然后再通过导航链接访问viewBook.jsp发现,上面那行的点击次数仍为55,未改变。这种情况不是100%,有时会正常更新。2.如果第一条中的正常,那么常会出现这种情况
序号 书名 价格 点击
1 jsp开发 20.0 58
...
点击进去一次,通过导航链接再访问viewBook.jsp,现在页面为
序号 书名 价格 点击
1 jsp开发 20.0 59
...
再点击进去一次,通过导航链接再访问viewBook.jsp,现在却回到
序号 书名 价格 点击
1 jsp开发 20.0 58
...
关了浏览器再来仍然是58.我用的hibernate3.0,不知是我的DAO的update方法的问题,还是IE问题,这个奇怪的问题使我的项目无法完成,请各位帮忙。
要是数据库里面是正确的话
有可能缓存问题了
要是缓存问题也是TOMCAT的话把tomcat关了,然后删除work重启一下看看