以下是我的所建的表的记录:
书号 书名      价格
001     web开发       23
002     java设计      30
003     C语言         39
004     操作系统      70
005     金融学        55
006     高等代数      27我的java代码是找出书号为002这本书,并打印出来它的价格,以下是代码:
import java.sql.*;public class Mytest1 {
  public static void main(String[] args) throws Exception {
    //更新数据库的名字,便可以建立对SQLServer的联接
    String url = "jdbc:odbc:bookshopdatabase";
    Connection conn;
    String output = new String("002");
    String price = null;
                 //建立连接类
    try{
      //告诉程序使用jdbc与odbc桥创建数据库联接
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      System.out.println("JDBC-ODBC的驱动程序注册成功");
    }catch(Exception e){
      System.out.println("找不到JDBC-ODBC的驱动程序");
    }
    try{
      //使用DriverManager类的getConnection()方法建立联接,第一个字符参数定义用户名,
      //第二个字符参数定义密码
      conn = DriverManager.getConnection(url, "sa", "1982101");
      Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
      ResultSet rs = stmt.executeQuery("select * from book");
      while(rs.next()){
       if(output.equals(rs.getString(1))){
       price += rs.getString(3);
       }
      }
System.out.println(price);
    }catch(Exception e){
e.printStackTrace();
    }
  }
}   问题是我的这段代码while循环里的if语句里的语句没有运行到!!!
就算改为"output == rs.getString(1)"也不行,为什么??请高手指点!!!

解决方案 »

  1.   

    既然没有运行到if里的代码,那就看看你的sql语句对不
      

  2.   

    呵呵,凑个热闹,
    JDBC不会这么弱吧,要靠字符串判断来检索?
      

  3.   

    应该没有问题rs.getString(1).equals(output)试一下
      

  4.   

    你在while下面加上一个System.out.println(rs.getString(1));
    看看你取出结果没有,不就行了,还有如果你设置数据库字段类型太大(如char(50)),你就应该取字段的时候rs.getString(1).trim(),因为字符数不够会用空格补的,所以你判断不出是否一致
      

  5.   

    你的3个字段,分别是:rs.getString(0), rs.getString(1),rs.getString(2)从0开始!没有3
      

  6.   

    同意zhaohaiqing_001(景天),用System.out.println(rs.getString(1));打出来看看取到的是什么东西.
      

  7.   

    你为什么不用where就出来拉
    怎么麻烦干吗!!