知ing

Java面向对象程序设计

耿祥义,张跃平 编 / 清华大学出版社

青涩当初 上传

查看本书


习题13

1一个使用链式结构,一个使用顺序结构。 

28

3ABCD

4选用HashMap<K,V>来存储

5

import java.util.*;

class UFlashKey implements Comparable {

   double d=0;

   UFlashKey (double d) {

     this.d=d;

   }

   public int compareTo(Object b) {

     UFlashKey st=(UFlashKey)b;

     if((this.d-st.d)==0)

        return -1;

     else

        return (int)((this.d-st.d)*1000);

  }

}

class UFlash {

    String name=null;

    double capacity,price;

    UFlash(String s,double m,double e) {

       name=s;

       capacity=m;

       price=e;

    }

}

public class Xiti5 {

   public static void main(String args[ ]) {

      TreeMap<UFlashKey,UFlash>  treemap= new TreeMap<UFlashKey,UFlash>();

      String str[]={"U1","U2","U3","U4","U5","U6","U7","U8","U9","U10"};

      double capacity[]={1,2,2,4,0.5,10,8,4,4,2};

      double price[]={30,66,90,56,50,149,120,80,85,65};

      UFlash UFlash[]=new UFlash[10];

      for(int k=0;k<UFlash.length;k++) {

         UFlash[k]=new UFlash(str[k],capacity[k],price[k]);

      }

      UFlashKey key[]=new UFlashKey[10] ;

      for(int k=0;k<key.length;k++) {

         key[k]=new UFlashKey(UFlash[k].capacity); //关键字按容量成绩排列大小

      }

      for(int k=0;k<UFlash.length;k++) {

         treemap.put(key[k],UFlash[k]);          

      }

      int number=treemap.size();

      System.out.println("树映射中有"+number+"个对象,按容量成绩排序:");

      Collection<UFlash> collection=treemap.values();

      Iterator<UFlash> iter=collection.iterator();

      while(iter.hasNext()) {

         UFlash stu=iter.next();

         System.out.println("U"+stu.name+" 容量 "+stu.capacity);

      }

      treemap.clear();

      for(int k=0;k<key.length;k++) {

         key[k]=new UFlashKey(UFlash[k].price);//关键字按价格成绩排列大小

      }

      for(int k=0;k<UFlash.length;k++) {

         treemap.put(key[k],UFlash[k]);

      }

      number=treemap.size();

      System.out.println("树映射中有"+number+"个对象:按价格成绩排序:");

      collection=treemap.values();

      iter=collection.iterator();

      while(iter.hasNext()) {

         UFlash stu=(UFlash)iter.next();

         System.out.println("U"+stu.name+" 价格 "+stu.price);

      }

    }

}

习题14

1

(1)创建数据源

选择“控制面板”→“管理工具”→“ODBC数据源”(某些window/xp系统,需选择“控制面板”→“性能和维护”→“管理工具”→“ODBC数据源”)。双击ODBC数据源图标,选择“系统DSN”或“用户DSN”,单击“添加”按钮,可以创建新的数据源。

(2) 数据源选择驱动程序

选择单击“添加”按钮,出现为新增的数据源选择驱动程序界面,如果要访问Access数据库,选择Microsoft Acess Driver*.mdb)。单击完成按钮。

(3) 数据源名称及对应数据库的所在位置

在设置数据源具体项目的对话框,在名称栏里为数据源起一个自己喜欢的名字。这个数据源就是指某个数据库。在“数据库选择”栏中选择一个已经准备好的数据库。

2.参照本章例子14.2

3.参照本章例子14.3

4.参照本章例子14.4

5使用预处理语句不仅减轻了数据库的负担,而且也提高了访问数据库的速度。

6事务由一组SQL语句组成,所谓事务处理是指:应用程序保证事务中的SQL语句要么全部都执行,要么一个都不执行。步骤:

(1)使用setAutoCommit(boolean autoCommit)方法
con对象首先调用setAutoCommit(boolean autoCommit)方法,将参数autoCommit取值false来关闭默认设置:

con.setAutoCommit(false);

(2) 使用commit()方法。con调用commit()方法就是让事务中的SQL语句全部生效。

(3) 使用rollback()方法。con调用rollback()方法撤消事务中成功执行过的SQL语句对数据库数据所做的更新、插入或删除操作,即撤消引起数据发生变化的SQL语句操作,将数据库中的数据恢复到commi()方法执行之前的状态。

7.参照本章例子14.2


查看更多