你的错误一定是显示:用尽的结果集。
结果集的指针初始时是指向结果集第一条记录的前一条,所以你要读第一条记录就得把结果集先next()一下。
一个statement对象一次只能打开一个resultset
是说你每次要获得一个ResultSet就要先创建一个Statement对象。
你的程序可改动如下:
Statement s=con.createStatement();
   ResultSet n=s.executeQuery("select * from k WHERE keyword='key'");
   n.next();
    int temp=n.getInt(4);
    Statement q=con.createStatement();
   ResultSet a=q.executeQuery("select * from an WHERE ID='n'");
   a.next();
   Statement p=con.createStatement();
   ResultSet b=p.executeQuery("select * from an WHERE ID=n");
   b.next();
   two.append(a.getString("ask"));
   two.append(b.getString("answer"));