@WebMethod(operationName = "update") public int update( @WebParam(name = "id") int id, @WebParam(name = "token") String token, @WebParam(name = "user-agent") String ua, @WebParam(name = "ip") String ip, @WebParam(name = "topic") String topic, @WebParam(name = "content") String content) { Connection conn = null; PreparedStatement ps = null; int res = -1; InformationToken it = new InformationToken(); String email = it.getEmail(token, ua, ip); if (it.getStatus() != 200) { return -1 * it.getStatus(); } else { try { // new com.mysql.jdbc.Driver(); Class.forName("com.mysql.jdbc.Driver").newInstance(); // conn = // DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename?user=username&password=password"); String connectionUrl = "jdbc:mysql://localhost:3306/stackexchange"; String connectionUser = "******"; String connectionPassword = ""; conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword); ps = conn.prepareStatement("select name from user where email = ?"); ps.setString(1, email); ResultSet rs = ps.executeQuery(); rs.next(); String name = rs.getString("name"); ps = conn.prepareStatement( "update question set name = ?, email = ?, topic = ?, content = ? where id = ?;"); ps.setString(1, name); ps.setString(2, email); ps.setString(3, topic); ps.setString(4, content); ps.setInt(5, id); res = ps.executeUpdate(); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) { } finally { try { if (ps != null) ps.close(); } catch (SQLException e) { } try { if (conn != null) conn.close(); } catch (SQLException e) { } } return res; } }
@WebMethod(operationName = "delete") public int delete(@WebParam(name = "qid") int qid) { Connection conn = null; PreparedStatement ps = null; int res = -1; try { // new com.mysql.jdbc.Driver(); Class.forName("com.mysql.jdbc.Driver").newInstance(); // conn = // DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename?user=username&password=password"); String connectionUrl = "jdbc:mysql://localhost:3306/stackexchange"; String connectionUser = "******"; String connectionPassword = ""; conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword); ps = conn.prepareStatement("delete from question where id = ?;"); ps.setInt(1, qid); ps.executeUpdate(); ps = conn.prepareStatement("delete from uservote where category = 'q' and id = ?;"); ps.setInt(1, qid); res = ps.executeUpdate(); ps = conn.prepareStatement("select id from Answer where q_id = ?"); ps.setInt(1, qid); ResultSet rs = ps.executeQuery(); while (rs.next()) { ps = conn.prepareStatement("delete from uservote where id = ? and category = 'a';"); ps.setInt(1, rs.getInt("id")); res = ps.executeUpdate(); } ps = conn.prepareStatement("delete from Answer where q_id = ?;"); ps.setInt(1, qid); res = ps.executeUpdate(); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) { } finally { try { if (ps != null) ps.close(); } catch (SQLException e) { } try { if (conn != null) conn.close(); } catch (SQLException e) { } } return res; }
/** Web service operation */ @WebMethod(operationName = "search") @WebResult(name = "Question") public ArrayList<Question> search(@WebParam(name = "key") String key) { // TODO write your implementation code here: ArrayList<Question> Questions = new ArrayList<Question>(); Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // new com.mysql.jdbc.Driver(); Class.forName("com.mysql.jdbc.Driver").newInstance(); // conn = // DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename?user=username&password=password"); String connectionUrl = "jdbc:mysql://localhost:3306/stackexchange"; String connectionUser = "******"; String connectionPassword = ""; conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword); ps = conn.prepareStatement("select * from question where topic like ? or content like ?;"); ps.setString(1, "%" + key + "%"); ps.setString(2, "%" + key + "%"); rs = ps.executeQuery(); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); String email = rs.getString("email"); String topic = rs.getString("topic"); String content = rs.getString("content"); int vote = rs.getInt("vote"); Questions.add(new Question(id, name, email, topic, content, vote)); } } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) { } finally { try { if (rs != null) rs.close(); } catch (SQLException e) { } try { if (ps != null) ps.close(); } catch (SQLException e) { } try { if (conn != null) conn.close(); } catch (SQLException e) { } } return Questions; }
/** * @param qid * @return */ @WebMethod(operationName = "getVote") public int getVote(@WebParam(name = "qid") int qid) { int vote = -1; Connection conn = null; PreparedStatement ps = null; try { // new com.mysql.jdbc.Driver(); Class.forName("com.mysql.jdbc.Driver").newInstance(); // conn = // DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename?user=username&password=password"); String connectionUrl = "jdbc:mysql://localhost:3306/stackexchange"; String connectionUser = "******"; String connectionPassword = ""; conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword); ps = conn.prepareStatement("select vote from question where id = ?"); ps.setInt(1, qid); ResultSet rs = null; rs = ps.executeQuery(); rs.next(); vote = rs.getInt("vote"); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) { } finally { try { if (ps != null) ps.close(); } catch (SQLException e) { } try { if (conn != null) conn.close(); } catch (SQLException e) { } } return vote; }
@WebMethod(operationName = "getNumAnswer") public int getNumAnswer(@WebParam(name = "id") int id) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; int res = -1; try { // new com.mysql.jdbc.Driver(); Class.forName("com.mysql.jdbc.Driver").newInstance(); // conn = // DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename?user=username&password=password"); String connectionUrl = "jdbc:mysql://localhost:3306/stackexchange"; String connectionUser = "******"; String connectionPassword = ""; conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword); ps = conn.prepareStatement("SELECT COUNT(id) AS numAns FROM answer where q_id = ?"); ps.setInt(1, id); rs = ps.executeQuery(); rs.next(); res = rs.getInt("numAns"); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) { } finally { try { if (ps != null) ps.close(); } catch (SQLException e) { } try { if (conn != null) conn.close(); } catch (SQLException e) { } } return res; }
@WebMethod(operationName = "getQuestionById") @WebResult(name = "Question") public Question getQuestionById(@WebParam(name = "qid") int qid) throws Exception { // TODO write your implementation code here: Question Q = new Question(); Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // new com.mysql.jdbc.Driver(); Class.forName("com.mysql.jdbc.Driver").newInstance(); // conn = // DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename?user=username&password=password"); String connectionUrl = "jdbc:mysql://localhost:3306/stackexchange"; String connectionUser = "******"; String connectionPassword = ""; conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword); ps = conn.prepareStatement("select * from question where id = ?"); ps.setInt(1, qid); rs = ps.executeQuery(); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); String email = rs.getString("email"); String topic = rs.getString("topic"); String content = rs.getString("content"); int vote = rs.getInt("vote"); Q = new Question(id, name, email, topic, content, vote); } } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) { throw e; } finally { if (rs != null) rs.close(); if (ps != null) ps.close(); } return Q; }
@WebMethod(operationName = "vote") public int vote( @WebParam(name = "id") int id, @WebParam(name = "token") String token, @WebParam(name = "user-agent") String ua, @WebParam(name = "ip") String ip, @WebParam(name = "value") int val) { Connection conn = null; PreparedStatement ps = null; int executeUpdate = -2; InformationToken it = new InformationToken(); String mail = it.getEmail(token, ua, ip); if (it.getStatus() != 200) { return -1 * it.getStatus(); } try { // new com.mysql.jdbc.Driver(); Class.forName("com.mysql.jdbc.Driver").newInstance(); // conn = // DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename?user=username&password=password"); String connectionUrl = "jdbc:mysql://localhost:3306/stackexchange"; String connectionUser = "******"; String connectionPassword = ""; conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword); ps = conn.prepareStatement( "select * from uservote where id_mail = ? and category = 'q' and id = ?"); ps.setString(1, mail); ps.setInt(2, id); ResultSet rs1 = ps.executeQuery(); if (rs1.next()) { return -1; } else { ps = conn.prepareStatement("insert into uservote values(?,'q',?)"); ps.setString(1, mail); ps.setInt(2, id); ps.executeUpdate(); ps = conn.prepareStatement("select vote from question where id = ?"); ps.setInt(1, id); ResultSet rs = ps.executeQuery(); rs.next(); int currentVote = rs.getInt("vote"); ps = conn.prepareStatement("update question set vote = ? where id = ?"); ps.setInt(1, currentVote + val); ps.setInt(2, id); executeUpdate = ps.executeUpdate(); } } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) { return 0; } finally { try { if (ps != null) ps.close(); } catch (SQLException e) { } try { if (conn != null) conn.close(); } catch (SQLException e) { } } return executeUpdate; }