看我的程序,为什么他只输出aaa和ok,为什么不输出bbb,真是怪事,输出aaa证明哪个if条件满足,也就执行 stmt.executeUpdate(sql3);
语句,把这条语句屏了,他输出aaa和bbb和ok了,为什么呢
package testtesttest;
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.servlet.*;
public class AppFacilityStatus {
java.text.DateFormat df = new java.text.SimpleDateFormat("yyy/MM/dd hh:mm");
Statement stmt ;
ResultSet rsHire ;
public AppFacilityStatus() {
}
public void statusAction()
throws Exception
{
Class.forName("org.postgresql.Driver");
java.sql.Connection con=DriverManager.getConnection("jdbc:postgresql://lcx/pmoo","postgres","postgres");
try
{
stmt = con.createStatement();
rsHire = stmt.executeQuery("SELECT * FROM facilityhire");
while (rsHire.next())
{
if (df.format(rsHire.getTimestamp("fh_end_date")).compareTo(df.format(new java.util.Date())) < 0 &&rsHire.getString("fh_status").equalsIgnoreCase("HIRING"))
{
int fh_facilityid = rsHire.getInt("fh_facilityid");
String sql3 = "UPDATE facility SET f_hireqty=100" + " where f_id="+fh_facilityid;
System.out.println("aaa");//测试用的
stmt.executeUpdate(sql3);
}
}
System.out.println("bbbb");测试用的
}
catch(Exception e)
{
throw new ServletException("error");
}
finally
{
rsHire.close();
stmt.close();
con.close();
System.out.println("ok");//测试用的
}
}
public static void main(String args[])
{
try{
new AppFacilityStatus().statusAction();
}
catch(Exception e)
{}
}
}
你在
System.out.println("aaa");//测试用的
的后面加一句
stmt = con.createStatement();
再试试
解决了,呵呵
以后继续互助
因为在执行stmt.executeUpdate(sql3)时出现了异常。
所以直接跳到异常处理catch中了。
仔细检查你的sql的查询语法及逻辑。