问题的详细说明如下:
首先读取数据库中表的行数,隔一段时间后再读一次,如果两次读取的值相同则没有任何反映,如果读取的值不相同,就返回一个值。
也就是说,要判断数据库中是否插入一行,
我编写了如下程序,运行时没有报错,但是没有任何反应
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置输出信息的格式及字符集
String sql1="select count(*) from userinfo1";
try{
Thread.sleep(5000); }
catch(Exception ep){
System.out.println("Data source Error");
}
String sql2="select count(*) from userinfo1 ";
if(sql1.equals(sql2)){
sql=1;
}
response.setContentType("text/xml;charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
//创建输出流对象
PrintWriter out = response.getWriter();
//依据验证结果输出不同的数据信息
out.println("<response>");
out.println("<count>" + (sql) + "</count>");
out.println("</response>");
out.close();
}
public String departInTimeInfo(String sql)
{
String Xmlshow="";
try{
rs=st.executeQuery(sql);
if (rs.next())
{
Xmlshow=Xmlshow+sql;
}
}
catch(Exception e) {}
return Xmlshow;
}
public void destroy()
{
try{
if (rs!=null) rs.close();
if (st!=null) st.close();
if (conn!=null) conn.close();
}
catch(Exception e){}
}
}
我是菜鸟,希望各位大侠帮忙
首先读取数据库中表的行数,隔一段时间后再读一次,如果两次读取的值相同则没有任何反映,如果读取的值不相同,就返回一个值。
也就是说,要判断数据库中是否插入一行,
我编写了如下程序,运行时没有报错,但是没有任何反应
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置输出信息的格式及字符集
String sql1="select count(*) from userinfo1";
try{
Thread.sleep(5000); }
catch(Exception ep){
System.out.println("Data source Error");
}
String sql2="select count(*) from userinfo1 ";
if(sql1.equals(sql2)){
sql=1;
}
response.setContentType("text/xml;charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
//创建输出流对象
PrintWriter out = response.getWriter();
//依据验证结果输出不同的数据信息
out.println("<response>");
out.println("<count>" + (sql) + "</count>");
out.println("</response>");
out.close();
}
public String departInTimeInfo(String sql)
{
String Xmlshow="";
try{
rs=st.executeQuery(sql);
if (rs.next())
{
Xmlshow=Xmlshow+sql;
}
}
catch(Exception e) {}
return Xmlshow;
}
public void destroy()
{
try{
if (rs!=null) rs.close();
if (st!=null) st.close();
if (conn!=null) conn.close();
}
catch(Exception e){}
}
}
我是菜鸟,希望各位大侠帮忙
解决方案 »
- 一个比较大流量的网站,用什么应用服务器比较好?
- 剩下最后一个问题未解决了,望前辈指点
- 求助 关于 选择下拉框 ! 多谢了
- 我把时间存到数据库的时间/日期字段里面,但是取出的时候为何不显示出时间?
- 痛并期待着……大虾们帮我看看这个jstl中的xml的标签问题(血书:跪求)(三问我不相信没人会)
- 关于jsp向servlets传参数的问题。
- 恳求一个关于jsp问题
- java调用c# webservice接口
- 关于下拉列表框的问题
- JSP用javabeans的时候java文件应该放在什么位置?
- b/s系统的: 系统设计、概要设计、概念设计、效果图的概念
- 用一个bat 文件怎么调用 oracle 的监听和数据库启动程序,然后再调用 tomcat的 startup.bat?
String sql="select count(*) from userinfo1";
int preCount=-1;
try{
Thread.sleep(5000); }
catch(Exception ep){
System.out.println("Data source Error");
}
;
response.setContentType("text/xml;charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
//创建输出流对象
PrintWriter out = response.getWriter();
//依据验证结果输出不同的数据信息
out.println(" <response>");
out.println(" <count>" + curCount + " </count>");
out.println(" </response>");
out.close();
}
public String departInTimeInfo(String sql)
{
String Xmlshow="";
try{
rs=st.executeQuery(sql);
if (rs.next())
{
int curCount = rs.getInt(1);
if (curCount!=preCount) {
Xmlshow=Xmlshow+curCount;
preCount=curCount;
}
}
}
catch(Exception e) {}
return Xmlshow;
}
int curCount = rs.getInt(1);
这个地方不太明白
int curCount = rs.getInt(1); 这句是得到查询出的记录条数,也就是说数据库里符合你查询语句的条数.
没有必要写上两条相同的sql语句,你可以对这条语句执行两次.curCount1和curCount2得到两次查询出的记录数,然后比较curCount1和curCount2,看看是否有新数据插入了.
因为首次查询int curCount = rs.getInt(1); 的返回值是大于等于0的,
然后在后面进行比较
int curCount = rs.getInt(1);
if (curCount!=preCount) {
Xmlshow=Xmlshow+curCount;
preCount=curCount;
}
第一次肯定不相等,所以执行IF语句,然后curCount的值赋给preCount,进行下一次比较
sql=1;
}这句话比较的是String类型的sql1和sql2,没有意义,比较的是两个字符串是否相同,但是你想比较的是两个结果集,你还是先好好看看java获取数据库中的数据的那块知识吧,相信会对你有帮助。