반응형

scheduler1.zip

압축파일 비밀번호 링크 : http://blog.naver.com/1xx707xx1/220722393843


DB는 MYSQL로 만들었습니다.

오라클이나 MSSQL 쓰시는분은 DB Driver 및 테이블을 오라클이나 MSSQL에 맞춰서 변경하셔야 합니다.


[ DB ]

 CREATE TABLE `events` (
  `event_id` int(11) NOT NULL AUTO_INCREMENT,
  `event_name` varchar(127) NOT NULL,
  `start_date` datetime NOT NULL,
  `end_date` datetime NOT NULL,
  PRIMARY KEY (`event_id`)
) ENGINE=InnoDB AUTO_INCREMENT=76 DEFAULT CHARSET=utf8;

INSERT INTO `events` VALUES ('1', 'Event from db #1', '2014-01-23 05:00:00', '2013-01-23 09:00:00');
INSERT INTO `events` VALUES ('2', 'Event from db #2', '2014-01-24 05:00:00', '2013-01-24 09:00:00');
INSERT INTO `events` VALUES ('3', 'Event from db #3', '2014-01-25 05:00:00', '2013-01-25 09:00:00');


=================================================================================

[EventsManager.java]


public class EventsManager extends DHXEventsManager {


    public EventsManager(HttpServletRequest request) {

                  super(request);

    }


    public Iterable getEvents() {

                  DHXEventsManager.date_format = "yyyy-MM-dd HH:mm:ss";

                  List evs = new ArrayList();

                  try {

                                java.sql.Connection conn = DatabaseConnection.getConnection();

        java.sql.Statement statement = conn.createStatement();


        String query = "SELECT event_id, event_name, start_date, end_date FROM events";

        ResultSet resultset = statement.executeQuery(query);


        while (resultset.next()) {

          DHXEvent e = new DHXEvent();

          e.setId(Integer.parseInt(resultset.getString("event_id")));

              e.setText(resultset.getString("event_name"));

              e.setStart_date(resultset.getString("start_date"));

              e.setEnd_date(resultset.getString("end_date"));

          evs.add(e);

        }

        conn.close();

                  } catch (SQLException e1) {

                                e1.printStackTrace();

                  }

                  DHXEventsManager.date_format = "MM/dd/yyyy HH:mm";


                  return evs;

    }


    @Override

    public DHXStatus saveEvent(DHXEv event, DHXStatus status) {

                  java.sql.Connection conn = DatabaseConnection.getConnection();

                  java.sql.PreparedStatement ps = null;

                  java.sql.ResultSet result = null;

                  try {

                                String query = null;

                                String start_date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(event.getStart_date());

                                String end_date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(event.getEnd_date());

                                if (status == DHXStatus.UPDATE) {

                                                query = "UPDATE events SET event_name=?, start_date=?, end_date=? WHERE event_id=?";

                                                ps = conn.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);

                                                ps.setString(1, event.getText());

                                                ps.setString(2, start_date);

                                                ps.setString(3, end_date);

                                                ps.setInt(4, event.getId());


                                } else if (status == DHXStatus.INSERT) {

                                                query = "INSERT INTO events (event_id, event_name, start_date, end_date) VALUES (null, ?, ?, ?)";

                                                ps = conn.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);

                                                ps.setString(1, event.getText());

                                                ps.setString(2, start_date);

                                                ps.setString(3, end_date);


                                } else if (status == DHXStatus.DELETE) {

                                                query = "DELETE FROM events WHERE event_id=? LIMIT 1";

                                                ps = conn.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);

                                                ps.setInt(1, event.getId());

                                }


                                if (ps!=null) {

                                                ps.executeUpdate();

                                                result = ps.getGeneratedKeys();

                                                if (result.next()) {

                                                              event.setId(result.getInt(1));

                                                }

                                }


                  } catch (SQLException e) {

                                e.printStackTrace();

                  } finally {

        if (result != null) try { result.close(); } catch (SQLException e) {}

        if (ps != null) try { ps.close(); } catch (SQLException e) {}

        if (conn != null) try { conn.close(); } catch (SQLException e) {}

    }


                  return status;

    }


    @Override

    public DHXEv createEvent(String id, DHXStatus status) {

                  return new DHXEvent();

    }

}


=================================================================================


[Scheduler.java]


@Controller

public class Scheduler {


   @RequestMapping("/scheduler")

   public String scheduler(ModelMap model) throws Exception {

   

DHXPlanner planner = new DHXPlanner("./codebase/", DHXSkin.TERRACE);

planner.localizations.set("cr");

planner.setWidth(900);


planner.config.setFirstHour(9);

planner.config.setLastHour(19);

planner.load("events.do", DHXDataFormat.JSON);

planner.data.dataprocessor.setURL("events.do");

    model.addAttribute("schedule", planner.render());    


      return "scheduler";

   }

   

   @RequestMapping("/events")

   @ResponseBody 

   public String events(HttpServletRequest request) throws Exception {

  EventsManager evs = new EventsManager(request);

   return evs.run();

   }

}


반응형
Posted by ThinkPad War
,