2015-02-18 3 views
0

Может кто-нибудь мне помочь в этом. Я пытаюсь установить соединение с базой данных (MySql) в этом сервлете в методе doPost(). Я не знаю, где проблема. Могу ли я установить соединение внутри этого сервлета или мне нужно создать новый класс java?JDBC to MySQL через netbeans в Java Web Application

package com.EventListing.servlets; 

import java.io.IOException; 
import java.sql.Connection; 
import java.io.PrintWriter; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.SQLException; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class ViewEventListing extends HttpServlet { 

@Override 
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 

} 

@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 

    PrintWriter out = response.getWriter(); 
    String eventTitle= request.getParameter("eventTitle"); 
     String location = request.getParameter("location"); 

     out.println("Welcome "+ eventTitle+"! The Email Address "+location+" has been " 
       + "added to our mailing list."); 


    try { 
      Class.forName("com.mysql.jdbc.Driver"); 
       out.println("Driver Loading Done!"); 
      } catch(ClassNotFoundException e) { 
     e.printStackTrace(); 
      } 
    String connURL = "jdbc:mysql://localhost/eventlistings" ; 
    String user = "root"; 
    String pass = "sheridan"; 


     Connection conn ;; 
    try { 
     conn = DriverManager.getConnection(connURL, user, pass); 
    } catch (SQLException ex) { 
     Logger.getLogger(ViewEventListing.class.getName()).log(Level.SEVERE, null, ex); 
    } 
     out.println("Connection Done!"); 


    String sql = "INSERT INTO eventlistings "+"(Title, Location)" + 
"VALUES('simran', 'Brampton');"; 


     PreparedStatement ps = conn.prepareStatement(); 

     out.close(); 
} 

/** 
* Returns a short description of the servlet. 
* @return a String containing servlet description 
*/ 
@Override 
public String getServletInfo() { 
    return "Short description"; 
}// </editor-fold> 

}

Это сервлет с помощью которого я хочу, чтобы загрузить некоторые данные из MySql, но я даже не мог подключиться к базе данных. Когда я пытаюсь использовать подготовленное заявление, которое есть, readyStatement ps, я получаю сообщение об ошибке. Может кто-то, пожалуйста, помогите мне.

+0

пожалуйста отправить сообщение об ошибке. –

+0

Он говорит: «Не найдено подходящего метода для подготовленного Statement (no arties) –

+0

Это не проблема сервлета. Вам нужно задать аргументы sql при создании подготовительного процесса. Я думаю, вы пропустили использование подготовки. Пожалуйста, попробуйте понять эту ссылку, например подготовки. http://www.tutorialspoint.com/jdbc/preparestatement-object-example.htm –

ответ

1
  1. Используйте только PreparedStatment где вы хотите повторно использовать SQL с различными аргументами

  2. Предлагай вместо этого использовать

    себе STMT = conn.createStatement();

    stmt.execute (sql);

вместо:

PreparedStatement ps = conn.prepareStatement(); 
Смежные вопросы