how to load data using oracle as backend and dhtmlx event calendar in jsp

679 Views Asked by At

Need solution, i have followed all the steps specified in the link http://blog.javaplanner.com/creating-a-simple-java-event-calendar

and i have changed EventsManager.java code as follows for dataformat that it supports in oracle

package com.dhtmlx.demo;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import com.dhtmlx.planner.DHXEv;
import com.dhtmlx.planner.DHXEvent;
import com.dhtmlx.planner.DHXEventsManager;
import com.dhtmlx.planner.DHXStatus;
import java.sql.*;

public class EventsManager extends DHXEventsManager {

        public EventsManager(HttpServletRequest request) {
                        super(request);
        }

        public Iterable getEvents() {
                        DHXEventsManager.date_format = "YYYY-MM-DD HH24:MI:SS.FF";
                        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 = "YYYY-MM-DD HH24:MI:SS.FF";

                        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 HH24:MI:SS.FF").format(event.getStart_date());
                                        String end_date = new SimpleDateFormat("YYYY-MM-DD HH24:MI:SS.FF").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();
        }
}

but am getting following error at console

java.lang.IllegalArgumentException: Illegal pattern character 'I'
at java.text.SimpleDateFormat.compile(Unknown Source)
at java.text.SimpleDateFormat.initialize(Unknown Source)
at java.text.SimpleDateFormat.<init>(Unknown Source)
at java.text.SimpleDateFormat.<init>(Unknown Source)
at com.dhtmlx.planner.DHXEvent.setStart_date(DHXEvent.java:61)
at com.dhtmlx.demo.EventsManager.getEvents(EventsManager.java:36)
at com.dhtmlx.planner.DHXEventsManager.load(DHXEventsManager.java:49)
at com.dhtmlx.planner.DHXEventsManager.run(DHXEventsManager.java:42)
at org.apache.jsp.events_jsp.getEvents(events_jsp.java:15)
at org.apache.jsp.events_jsp._jspService(events_jsp.java:63)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)

and not able to display those events which are picked from database in calendar

am able to create those events on browser but not getting saved and throws error parseException

0

There are 0 best solutions below