javasqlaccess怎么比较日期大小
读取returnlist数据库(access)把归还日期大于借阅期限的数据做成表(jtable)输出到屏幕
try {
PreparedStatement preparedStatement=connection.prepareStatement("select *from returnlist where 用户名=?");
preparedStatement.setString(1, user_Library.currentuserString);
ResultSet rs=preparedStatement.executeQuery();
vdata=new Vector();
while(rs.next())
{
date1=rs.getDate(6);
date2=rs.getDate(7);
//PreparedStatement preparedStatement2=connection.prepareStatement("select *from returnlist where ?<?");
//preparedStatement2.setDate(1, date1);
//preparedStatement2.setDate(2, date2);
//ResultSet rs1=preparedStatement2.executeQuery();
Statement stmt=connection.createStatement();
String sql="select *from returnlist where '"+"#"+date1+"#'<'#"+date2+"#'";
System.out.print(sql);
ResultSet rs1=stmt.executeQuery(sql);
while(rs1.next())
{
feeflag=true;
vrow=new Vector();
vrow.add(rs1.getString(1));
vrow.add(rs1.getString(2));
vrow.add(rs1.getString(3));
vrow.add(rs1.getString(4));
vrow.add(rs1.getString(5));
vrow.add(rs1.getString(6));
vrow.add(rs1.getString(7));
vrow.add(rs1.getString(8));
vdata.add(vrow);
}
}
if (feeflag==true) {
Vector vcolumn=new Vector();
vcolumn.add("权限");
vcolumn.add("用户名");
vcolumn.add("信用值");
vcolumn.add("借阅书籍");
vcolumn.add("出版社");
vcolumn.add("借阅限期");
vcolumn.add("归还日期");
vcolumn.add("欠费状态");
if (user_Library.switchmode==false) {
user_Library.tablemodel=new DefaultTableModel(vdata,vcolumn);
user_Library.jtable=new JTable(user_Library.tablemodel);
user_Library.tablePane=new JScrollPane(user_Library.jtable);
user_Library.userFrame.add(user_Library.tablePane,BorderLayout.CENTER);
user_Library.userFrame.setVisible(true);
user_Library.switchmode=true;
}
else if(user_Library.switchmode==true)
{
user_Library.tablemodel=new DefaultTableModel(vdata,vcolumn);
user_Library.jtable.setModel(user_Library.tablemodel);
user_Library.userFrame.setVisible(true);
}
}
问题是他没有判断日期大小 把数据库里的东西全部输出出来了
你程序的思路完全不对啊。这个不用在循环中再做查询的,一条SQL就可以解决你的问题
select * from returnlist where 用户名=? and 归还日期>借阅限期
而你是先取了用户的数据,又做了一遍SQL(这个多余的)
若第一次你要取用户所有数据,也就是
select * from returnlist where 用户名=?
那么,你只要用程序判date1>date2,不用再查数据库的
另外,你的rs1的SQL条件看上去写反了,所以结果不对
下一篇:EXCEL中打印如何居中?
上一篇:这个哪个组织的logo?