WEB开发网
开发学院软件开发Java 建立一个 Derby 日历,第 2 部分: 嵌入选项(上)... 阅读

建立一个 Derby 日历,第 2 部分: 嵌入选项(上)

 2010-04-19 00:00:00 来源:WEB开发网   
核心提示: 所有动作都在 SaveListener.actionPerformed() 方法中完成,首先提取月份和日期信息,建立一个 Derby 日历,第 2 部分: 嵌入选项(上)(8),Java 数组是以零为基数的,因此需要加 1 来修正,需要 Calendar 返回 EventClass 对象数组供应

所有动作都在 SaveListener.actionPerformed() 方法中完成。首先提取月份和日期信息。Java 数组是以零为基数的,因此需要加 1 来修正。年份用字符串表示,因此只要使用 String 值转化成 int 值。

得到这些数据之后,将其送入 EventClass 构造函数,就像在 GUI 版本中那样。EventClass 输出到命令行,因此可以看到类似 清单 6 的结果。

清单 6. EventClass 命令行输出

   Creating event for 7/3/2006 
Sis's birthday 
Don't forget to call! 
Reminders to: reminders@nicholaschase.com 
Record updated 

调整 Calendar 类

虽然保存了事件,但是要显示这些事件必须调整 Calendar 类。这个类输出某年某月某日的事件,如 清单 7 所示。

清单 7. 输出某一天的事件

   >>java Calendar 7 3 2006 
14 
Sis's birthday 
Don't forget to call! 
reminders@nicholaschase.com 
7/3/2006

对于测试来说这就够了,但是对于在 GUI 窗口中显示信息毫无用处。需要 Calendar 返回 EventClass 对象数组供应用程序其他部分使用。可以直接修改 getEvents() 方法,如 清单 8 所示。

清单 8. 返回数组而不是文本

   ... 
  public static EventClass[] getEvents(int eventMonth, 
             int eventDay, int eventYear) { 
   try { 
     Connection conn = getConnection(); 
 
     Statement s = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
                     ResultSet.CONCUR_READ_ONLY); 
     ResultSet rs = s.executeQuery("SELECT * FROM Event "+ 
              "where eventMonth="+eventMonth+ 
              " and eventDay="+eventDay+" and "+ 
              "eventYear="+eventYear); 
     EventClass[] events = null; 
 
     if (!rs.next()){ 
      return null; 
     } else { 
      rs.last(); 
      int numberOfEvents = rs.getRow(); 
      rs.beforeFirst(); 
 
      events = new EventClass[numberOfEvents]; 
      int thisEventIndex = 0; 
      EventClass thisEvent = null; 
      while (rs.next()) { 
        thisEvent = new EventClass(rs.getInt(1)); 
        thisEvent.setTitle(rs.getString(2)); 
        thisEvent.setDescription(rs.getString(3)); 
        thisEvent.setRemindersTo(rs.getString(4)); 
        thisEvent.setEventMonth(rs.getInt(5)); 
        thisEvent.setEventDay(rs.getInt(6)); 
        thisEvent.setEventYear(rs.getInt(7)); 
        events[thisEventIndex] = thisEvent; 
        thisEventIndex = thisEventIndex + 1; 
      } 
     } 
 
     rs.close(); 
     s.close(); 
     conn.close(); 
     try { 
      DriverManager.getConnection( 
               "jdbc:derby:;shutdown=true"); 
     } catch (SQLException se) { } 
     return events; 
 
   } catch (Exception e) { 
     e.printStackTrace(); 
     return null; 
   } 
 
  } 
...

上一页  3 4 5 6 7 8 9 10  下一页

Tags:建立 一个 Derby

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接