압축파일 비밀번호 링크 : 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();
}
}