Заявление в базе данных в Java - PullRequest
1 голос
/ 24 апреля 2011

привет, я написал сервлет и его вывод не выводится мой код

@WebServlet(name="NewServlet", urlPatterns={"/NewServlet"})
public class NewServlet extends HttpServlet {
   Connection connection;
   ResultSet resultset;
   private PreparedStatement updateVotes, totalVotes, results;


    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException, ClassNotFoundException, SQLException {
        Class.forName( "org.apache.derby.jdbc.EmbeddedDriver" );
 connection = DriverManager.getConnection( "jdbc:derby://localhost:1527/HELLOJI","HELLO","HELLO" );
            // TODO output your page here

Statement statement=connection.createStatement();
statement.executeQuery("CREATE TABLE customers(FIRSTNAME char(50),LASTNAME char(50))");
statement.executeQuery("INSERT INTO customer(\"HELLO\",\"HELLO\")");

response.setContentType("text/xml;charset=UTF-8");

        PrintWriter out = response.getWriter();
        try {
            // TODO output your page here
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet NewServlet</title>");  
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Hehjhkhk</h1>");
            out.println("</body>");
            out.println("</html>");

        }
       finally  {
            out.close();
        }
    } 


    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    } 


    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

            @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}

нет исключений classcast или чего-то еще. Потому что, когда я прокомментировал заявление

statement.executeQuery("CREATE TABLE customers(FIRSTNAME char(50),LASTNAME char(50))");
statement.executeQuery("INSERT INTO customer(\"HELLO\",\"HELLO\")");

показывает вывод. Я думаю, что соединение с базой данных идеально, проблема в statement.executeQuery(); Можете ли вы помочь, как справиться с этим исключением.

Ответы [ 3 ]

1 голос
/ 24 апреля 2011

В соответствии с документацией (доступно по http://download.oracle.com/javase/6/docs/api/java/sql/Statement.html#executeQuery(java.lang.String) executeQuery сгенерирует исключение SQLException, если инструкция SQL не выдает один ResultSet. Попробуйте вместо этого использовать executeUpdate.

0 голосов
/ 24 апреля 2011

Проблема в вашем запросе с закомментированными строками.Пожалуйста, попробуйте проверить следующее:

(1) Проверьте на опечатки.customer может быть customers или наоборот, потому что имя таблицы в двух строках отличается

(2) Проверьте версию вашего mysql.Обычно оператор INSERT имеет форму INSERT INTO <table name> (<fields>) VALUES (<field value>).

(3) Попробуйте поместить строки executeQuery в try-catch и распечатать выброшенное исключение, чтобы вы могли определить проблему.

0 голосов
/ 24 апреля 2011

Возможно, из-за неправильного имени таблицы.клиенты и клиент в двух разных запросах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...