快来看看这段代码吧,小弟给大家磕头了.为什么不好使?(在线等!!急!!!)

jackal81 2003-09-15 02:39:40
import java.util.*;
import java.sql.*;
public class Test{
public static void main (String [] args) throws Exception{
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@128.0.1.52:1521:A";
String user="1234";
String password="1234";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
Calendar date = Calendar.getInstance();
int dat =date.get(Calendar.MONTH)+1;
String dte = null;
if(dat>=10)
dte = ""+dat;
else
dte = "0"+dat;
String sql="select CLEARDAY,sum(FEESUM) as feesum from temp_billday group by clearday having clearday like '2003"+dte+"%'";
ResultSet rs=stmt.executeQuery(sql);
Vector cleardayStr = new Vector(1,1);
Vector feesumStr = new Vector(1,1);
Vector cleardayStr1 = new Vector(1,1);
Vector feesumStr1 = new Vector(1,1);
try{
while(rs.next()){
cleardayStr.add(rs.getString("CLEARDAY"));
feesumStr.add(rs.getString("FEESUM"));
}
dat = date.get(Calendar.MONTH);
if(dat>=10)
dte = "0"+dat;
else
dte = ""+dat;
sql="select CLEARDAY,sum(FEESUM) as feesum from temp_billday group by clearday having clearday like '2003"+dte+"%'";
rs=stmt.executeQuery(sql);
while(rs.next()){
cleardayStr1.add(rs.getString("CLEARDAY"));
feesumStr1.add(rs.getString("FEESUM"));
}
cleardayStr.trimToSize();
feesumStr.trimToSize();
cleardayStr1.trimToSize();
feesumStr1.trimToSize();
int s1 = cleardayStr.size();
int s2 = feesumStr.size();
for (int i = 0;i<=cleardayStr.size();i++){
System.out.print("\t|"+(String)cleardayStr.get(i));
System.out.print("\t|"+(String)feesumStr.get(i));
System.out.print("\t|"+(String)cleardayStr1.get(i));
System.out.print("\t|"+(String)feesumStr1.get(i));
if(i==cleardayStr.size())
System.out.println("");
}

}catch(Exception e){}
rs.close();
stmt.close();
conn.close();
}

}
此程序编译通过了,意思是在数据库里提取一个表里的数据,开始取当月的数据,存到cleardayStr和feesum里,然后在取前一个月的数据存到clearday1和feesum1里,最后输出结果,结果应该是输出前一个月的数据数,与本月数据数相等.可是为什么只能输出本月一条数据(其实本月也不止一条数据),上月的数据一条都没有输出.难道一条连接不能传两条sql语句?情大家帮忙看看!!!!!!!
...全文
52 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackal81 2003-09-15
  • 打赏
  • 举报
回复
我靠!一针见血!!我太马虎了,呵呵!!!!谢谢,立即给分
qiyongjun2003 2003-09-15
  • 打赏
  • 举报
回复
if(dat>=10)
dte = "0"+dat;
else
dte = ""+dat;
错了吧,我想应该小于10加‘0’的,你看看。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧