吉联JAVA笔试题和面试题答案(三)

新高考网

三、找错题20分(共5处错误,每处4分)

  现需为网上书店提供一个接口,用于查询某笔订单对应的明细编号,书籍编号以及实际价格,并且按明细编号排序。表结构如下所示:

  字段描述

  字段名

  类型

  明细编号

  ORDERDETAILID

  VARCHAR2(50)

  订单号

  ORDERID

  VARCHAR2 (50)

  书籍编号

  BOOKID

  VARCHAR2 (50)

  原价

  BOOKPRICE

  NUMBER (10,2)

  折扣率

  BOOKRATE

  NUMBER(4,2)

  备注

  MEMO

  VARCHAR2 (4000)

  代码如下:

  public Map getorderdetail(String orderId ){

  String sql = "select * from orderdetails" ;

  sql += " where orderId=" + orderId ;

  sql += " order by orderDetailId" ;

  //注:getConnection为伪代码,用于获取数据库连接

  java.sql.Statement st = getConnection().createStatement() ;

  ResultSet rs = st.executeQuery(sql) ;

  Map a = new HashMap() ;

  OrderDetail orderDetail = new OrderDetail() ;

  while(rs.next()){

  orderDetail.setOrderDetailId(rs.getString(1)) ;

  orderDetail.setOrderId(rs.getString(2)) ;

  orderDetail.setBookId(rs.getString(3)) ;

  orderDetail.setBookPrice(rs.getDouble(4)) ;

  orderDetail.setBookRate(rs.getDouble (5)) ;

  orderDetail.setMemo(rs.getString(6)) ;

  a.put(orderDetailId , orderDetail) ;

  }

  return a ;

  }

  现需尽可能提高代码的运行效率及可维护性,请指出上面代码需改正(改进)的地方(共七种),并说明原因及改正(改进)的方法。

中国点击率最高的一篇文章 !