数据访问对象方法不起作用

时间:2017-01-02 19:27:55

标签: java mysql jsp servlets dao

我是学习JSP的学生,我似乎在通过DAO类的对象执行方法时遇到此问题。当在servlet本身上给出数据库连接和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);
        }


        }
}

}

DAO课程

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;


} 

}

2 个答案:

答案 0 :(得分:0)

您应该在servlet中导入DAO类包然后访问它,它将像

一样工作
import DAO.cartDao; 

如果您不导入,那么如何访问

答案 1 :(得分:0)

我不明白究竟什么不起作用?但我注意到,你没有在DAO类中关闭语句和数据库连接。

仅供参考:示例

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) {};
}