初学java 链接access数据库。
数据库meeting表有两个字段:StartTime和EndTime,数据格式都是短时间(hh:nn);
现在想查询符合时间在[start,end]之间的记录,代码如下,ResultSet verify_time(String start,String end,String usrName) throws SQLException {
ResultSet rs=ac.query("select * from Meeting where (( StartTime<#"+start+"# and EndTime>#"+start+"#) or (StartTime<#"+end+"# and EndTime>#"+end+"#)) and (First='"+usrName+"' or Second='"+usrName+"')");
return rs;
}ac.query 是数据层的函数
public ResultSet query(String cmd) throws SQLException {
return sql.executeQuery(cmd);
}void add(String usrName, String Password, String other, String start, String end, String title) throws SQLException {
ResultSet rs=verify_time(start,end,usrName);
if(!rs.next()){//执行到这出现resultset is closed 错误,请问怎么办?
ac.update("insert into Meeting (First,Second,StartTime,EndTime,Title) values ('"+usrName+"','"+other +"','"+start+"','"+end+"','"+title+"')");
}
else
System.out.println("Already One Meeting During This Time at Least!");
display(usrName);
}初学java很多不懂,请帮忙~~
数据库meeting表有两个字段:StartTime和EndTime,数据格式都是短时间(hh:nn);
现在想查询符合时间在[start,end]之间的记录,代码如下,ResultSet verify_time(String start,String end,String usrName) throws SQLException {
ResultSet rs=ac.query("select * from Meeting where (( StartTime<#"+start+"# and EndTime>#"+start+"#) or (StartTime<#"+end+"# and EndTime>#"+end+"#)) and (First='"+usrName+"' or Second='"+usrName+"')");
return rs;
}ac.query 是数据层的函数
public ResultSet query(String cmd) throws SQLException {
return sql.executeQuery(cmd);
}void add(String usrName, String Password, String other, String start, String end, String title) throws SQLException {
ResultSet rs=verify_time(start,end,usrName);
if(!rs.next()){//执行到这出现resultset is closed 错误,请问怎么办?
ac.update("insert into Meeting (First,Second,StartTime,EndTime,Title) values ('"+usrName+"','"+other +"','"+start+"','"+end+"','"+title+"')");
}
else
System.out.println("Already One Meeting During This Time at Least!");
display(usrName);
}初学java很多不懂,请帮忙~~
ResultSet rs=ac.query("select * from Meeting where (( StartTime <#"+start+"# and EndTime>#"+start+"#) or (StartTime <#"+end+"# and EndTime>#"+end+"#)) and (First='"+usrName+"' or Second='"+usrName+"')");
return rs;
}
ResultSet不般都不用来做返回的,因为你的Connection在用完后一般都需要关闭,当Connection关闭后你返回的rs就没什么意思义了.你可以把rs里面东西放在一个List里,然后返回一个List
import java.sql.*;
public class TestAccess {
public static void main(String[] args) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//DBTest.mdb是C盘下access文件
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=c:\\DBTest.mdb";
String user="";
String password="";
Connection con=null;
Statement st=null;
ResultSet rs=null;
con=DriverManager.getConnection(url, user, password);
st=con.createStatement();
rs=st.executeQuery("select * from student");
System.out.println("编号\t"+"姓名\t"+"性别");
while(rs.next())
{
System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
ResultSet不要用来做返回,因为你的Connection在用完后一般都需要关闭,当Connection关闭后你返回的rs就没什么意思义了.你可以把rs里面东西放在一个List里,然后返回一个List