建立一个Derby日历,第2部分

对于 EventClass 类,只需要接收用户名和口令并保存到属性中。连接到数据库时,检索并使用该信息。

因为静态使用 Calendar 类,情况略有不同,如 清单 15 所示。

清单 15. Calendar 和用户信息

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

import java.sql.ResultSet;

public class Calendar {

   public static String driver =
         "org.apache.derby.jdbc.ClientDriver";

   private static Connection getConnection(String  username,
                   String password) throws  Exception {

    Class.forName(driver).newInstance();
    Connection conn = null;
    conn = DriverManager.getConnection(
         "jdbc:derby://localhost:1527/calendar;user="
                    +username+";password="+password);
    return conn;
   }

   public static EventClass[] getEvents(int eventMonth,
              int eventDay, int eventYear,
              String username, String password)  {
    try {
      Connection conn = getConnection(username,  password);

      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),  username, password);
         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;
    }

   }

   public static void main (String args[]){

    int month = Integer.parseInt(args[0]);
    int day = Integer.parseInt(args[1]);
    int year = Integer.parseInt(args[2]);
    getEvents(month, day, year, args[3], args[4]);
   }
}

时间: 2024-10-14 00:09:33

建立一个Derby日历,第2部分的相关文章

建立一个Derby日历,第1部分

开始之前 在本教程中,您将开始建立一个使用 Apache Derby 作为数据库后端的日历 和提醒器系统.在本系列的第 2 部分和第 3 部分,将会增加两个不同的用户界 面到这个应用程序:但现在我们将致力于访问数据和使用电子邮件设置合适的提 醒. 您将会学到以下的内容: 基本的 Derby 概念 安装 Derby 并在嵌入模式下与之交互 使用 JDBC 连接 Derby 使用 JDBC 向 Derby 添加数据 使用 JDBC 查询并查看 Derby 数据 使用 JDBC 更新现有的 Derby

建立一个Derby日历,第3部分

使用表模型 前面修改了后端.现在来看看前端.GUI 应用程序显示表中的事件,如果没 有模型,这项任务就非常单调乏味.为了避免在讨论真正的界面时分心,我们来 看看这些模型是如何工作的,这样后面就清楚是怎么回事了. 什么是表模型? 如果您曾经做过程序员,我告诉您需要显示一个表中的信息,那么您就知道 需要采取一系列的步骤.需要安排不同的行和列,记录哪一行代表哪个对象,等 等.如果还希望编辑表,那么要完成的任务清单就更长了. 问题在于这一系列活动都是固定的.如果知道应用程序中要在好几个地方做 同样的事情

openni opencv linux-如何在linux下建立一个着openni和opencv的工程?

问题描述 如何在linux下建立一个着openni和opencv的工程? 如何在linux下建立一个着openni和opencv的工程?麻烦大神们详细解说下,不胜感激!!!!

前端-用php和mysql为我们实验室建立一个小网站,请问有没有合适的模板源码?

问题描述 用php和mysql为我们实验室建立一个小网站,请问有没有合适的模板源码? 自己在chinaz上下载了几个,但是不尽人意,希望有路过的朋友能够提供帮助,只有建立一个链接数据库的小网站,不用线上上运行,所以模板不用太复杂,前端有了就好,谢谢 解决方案 你应该说明网站用途,根据用途可以决定里的要用什么,只链接数据库使用phpadmin就好 解决方案二: 这样谁说你更想要的是前端的页面

如何使用SQLyogEnt来建立一个简单的数据库

如果你选择PHP进行网站建设,那你必须懂得php建立数据库,那用mysql数据就是必须的了.刚接触php的朋友也许对这个mysql数据库很陌生,但如果有一款非常好用的数据库管理工具,那是用起来就方便多了,笔者几天就向大家介绍一款mysql的管理工具SQLyogEnt,笔者是用的 SQLyogEnt是英文版,目前好像没有中文版,由于功能强大,所以SQLyogEnt很受PHP用户的喜爱,接下就用实例来讲解下如何使用 SQLyogEnt来建立一个简单的数据库. 今天我建立的数据库名叫"mydb&quo

希望建立一个循环,i值从start递变到end,不知道该怎么写

问题描述 希望建立一个循环,i值从start递变到end,不知道该怎么写 假如end>start,那么可以 for(int i=start,i<=end,i++){} 假如end for(int i=start,i>=start;i--){} 有没有写法可以统一一下,不要分开来写 解决方案 1.循环前先判断, int small=end>start:start?end; int max=end>start:end?start; for(int i=small,i<=ma

服务器问题-如何建立一个服务器,内外网问题

问题描述 如何建立一个服务器,内外网问题 请教,建一个ad要如何做. 另外我要建一个公司邮箱及一个vpn该如何设置. 还有如何把内外网分开 如有图片,请附上. 请教,请教.

Ultradev实例教程:2.1 建立一个简单的access数据库

access|教程|数据|数据库 第二章:设置数据库 第一节.建立一个简单的access数据库 这一节我们将学习有关数据库创建的内容,用过Access创建数据库的朋友可以略过不看. 打开Microsoft Access,选择 文件 -〉新建数据库,然后选择一个位置保存你的数据库文件,这里我们按它默认的db1.mdb命名保存. 保存数据库后我们看到的是下面的界面,双击使用设计器创建表,开始创建一个数据表.我们这里的应用你只需照着步骤一步步做下去,即使你以前从没接触过数据库也没有问题,如果你想做深层

如何建立一个 XML 的开发环境

xml 学习 XML 的最佳途经是从简单的开发入手,大胆实践,循序渐进.XML 的妙处只有在开发过程中才能深入体会,离开了开发是学不好 XML 的.因此学习 XML 首先应该建立一个 XML 的开发环境.我给大家介绍一下怎样建立一个基于 Java 的 XML 开发环境.因为我现在没办法用到 Linux,所以所有的例子都是在 Windows 上做的.但是这里介绍的所有的软件在 Linux 和 Windows 上都是可以用的,用法也大同小异.而且除了 Sun 的 JRE 以外都是 open sour