2017-01-02 7 views
-1

Я ученик, изучающий JSP, и мне кажется, что эта проблема возникает при выполнении метода через объект класса DAO. Когда соединение с базой данных и SQL-запрос заданы на самом сервлете, он будет работать. Но когда задано в классе DAO и используется объект, он не работает. Пожалуйста помоги.Метод объекта доступа к данным не работает

import dataaccessobjects.cartDAO1; 
import java.io.IOException; 
import java.io.PrintWriter; 
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 addtoCartServ extends HttpServlet { 

@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    cartDAO1 newcart = new cartDAO1(); 
    PrintWriter out = response.getWriter(); 

    if (request.getParameter("submit") != null){ 

       //out.println("added to cart"); 
      try { 
      //out.println("submit not null"); 
      String Uname = (String) request.getSession().getAttribute("Welcome"); 
      String ino = request.getParameter("ino"); 
      String iqnty = request.getParameter("quantity"); 
      String iname = request.getParameter("iname"); 

      if(newcart.addToCart(iname,Uname,ino,iqnty)){ 

      out.println("added to cart"); 
      } 
      } catch (SQLException ex) { 
      Logger.getLogger(addtoCartServ.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (ClassNotFoundException ex) { 
      Logger.getLogger(addtoCartServ.class.getName()).log(Level.SEVERE, null, ex); 
     } 


     } 
} 

}

дао класс

public cartDAO1(){ 
} 
public boolean addToCart(String iname,String username, String ino,String  iqnty) throws SQLException, ClassNotFoundException{ 
boolean flag = false; 

Class.forName("org.apache.derby.jdbc.ClientDriver"); 
Connection conn =  DriverManager.getConnection("jdbc:mysql://localhost:3306/styleomega","root",""); 
     PreparedStatement ps = conn.prepareStatement("INSERT INTO cart(iname,uname,ino,iqnty) VALUES (?,?,?,?)"); 


     // set the values for parameters 
      ps.setString(1,iname); 
      ps.setString(2,username); 
      ps.setString(3,ino); 
      ps.setString(4,iqnty); 
      int rs = ps.executeUpdate(); 

     if (rs==1){ 
     flag = true; 
     } 
     return flag; 


} 

}

+0

Есть ли ошибка или просто нет результатов? – yakatz

+0

Я точно не понимаю, что не работает? Но я заметил, что вы не закрываете соединение с базой данных в своем классе DAO. – fabfas

ответ

0

Вы должны импортировать пакет класса DAO в сервлет, то доступ к нему будет работать как

import DAO.cartDao; 

Если вы не будете импорт, то как к нему присоединяется

+0

Мне жаль, что я не добавил их в вопрос. Но у меня есть пакет и класс импортированный. Теперь я редактировал вопрос. – Sachinwick

+0

Тогда какова будет ошибка или предупреждение при ее выполнении –

0

Не понимаю, что именно не работает? Но я заметил, что вы не закрываете оператор и соединение с базой данных в своем классе DAO.

FYI: Пример

Connection conn = null; 
PreparedStatement stmt = null; 
ResultSet rs = null; 
try { 
conn = // Retrieve connection 
stmt = conn.prepareStatement(// Some SQL); 
rs = stmt.executeQuery(); 
} catch(Exception e) { 
    // Error Handling 
} finally { 
try { if (rs != null) rs.close(); } catch (Exception e) {}; 
try { if (stmt != null) stmt.close(); } catch (Exception e) {}; 
try { if (conn != null) conn.close(); } catch (Exception e) {}; 
}