最近做一个访问量统计的功能,每访问一次该页面,数据库中字段加1,我写的数据库如下:
update tablename set num = num + 1 where id = ?
在ISQL PLUS里是可以的,但是放到程序中确无法实现希望高手指点?
public class Test {
public static void main(String args[]) {
DataAccess data = new DataAccess();
String sql = "update pageview set num=num+1 where id=1001";
int i = data.executeUpdate(sql);
System.out.println(i);
}
}
update tablename set num = num + 1 where id = ?
在ISQL PLUS里是可以的,但是放到程序中确无法实现希望高手指点?
public class Test {
public static void main(String args[]) {
DataAccess data = new DataAccess();
String sql = "update pageview set num=num+1 where id=1001";
int i = data.executeUpdate(sql);
System.out.println(i);
}
}
解决方案 »
- myeclipse Tomcat 路径问题
- javascript中如何比较两个字符串?
- 求ADODB session类运用实例,就是能实现后台管理用户,过多长时间没操作session自动过期等.....
- 关于使用jSP 调用JavaBean的问题
- 在线等曾曾. 你来回答我的字符串截取问题先
- 在线等待!!~~~关于JSP做数据库备份还原的问题
- 各位侠侠,帮帮小弟一个忙!!!!!!!!!!
- 高手指点,在jsp里datediff函数的应用问题,在线请教.......
- war部署到Tomee中启动报错如何解决?
- 关于配置weblogic连接池的问题??
- ssh整合,刚开始有2个web页面可以访问action。现在为什么又全部都找不到action了啊
- [在线等]请问${}是什么呢~?
int i = data.executeUpdate(sql);
一行时就不动了
哈哈.访问就 + 1 ? 我建议你啊,自动的每天固定的时候就update 一次.
将这段时间的点击次数记录起来. 你的加了dataAccess 事物处理没? 肯定是dataAccess 有问题拉
{
Statement st = null;
int result;
try
{
st = connection.createStatement(1005, 1008);
result = st.executeUpdate(sql);
//System.out.println(sql);
//return result;
}
catch(Exception e)
{
e.printStackTrace();
return 0;
}finally{
try{
if(st != null) {
st.close();
st = null;
}
}catch(Exception e){
e.printStackTrace();
}
}
return result;
}
你把st.executeUpdate(sql); 改成 st.execute(sql); 试一下. 我想这有可能不行. 还有一种办法是:
先进行查询 String sql = "select * from tablename where id = 1001";
得到num: num = num +1 的值 再进行更新.
方法:
1 可以分布进行
2 可都写在一起.
st = connection.createStatement(1005, 1008);
rs = (ResultSet) st.executeQuery(sql);
if(rs.next()) {
long num = rs.getLong("num"); num +=1; rs.updateObject("num", num); rs.updateRow();
}