-1

我的错误:

java.lang.AbstractMethodError: Method oracle/jdbc/driver/OraclePreparedStatement.setBlob(ILjava/io/InputStream;)V is abstract
    at oracle.jdbc.driver.OraclePreparedStatement.setBlob(OraclePreparedStatement.java)
    at controller.control_gambar.addGambar(control_gambar.java:35)

我的代码:

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

    HttpSession session = request.getSession();
    Login login = (Login) session.getAttribute("login");


    {
        String message = null;

        String question = request.getParameter("question");
        String status = request.getParameter("status");
        String teacher_id = login.getCuba();
        String level_id = request.getParameter("level_id");
        String topic_id = request.getParameter("topic_id");
        String[] answer = request.getParameterValues("mytext");

        System.out.println("mana dia hg mai sat" + topic_id);
        System.out.println("mana dia hg mai sat" + level_id);
        System.out.println("mana dia hg mai sat" + status);

        String[] pegang = request.getParameterValues("marks");

        int[] markah = new int[pegang.length];
        for (int i = 0; i < pegang.length; i++) {
            markah[i] = Integer.parseInt(pegang[i]);
            System.out.println("marka:" + markah[i]);
        }

        for (int index = 0; index < markah.length; index++) {
            System.out.println(markah[index]);

        }
        //for insert question
        question_sub question_sub1 = new question_sub();


        question_sub1.setQuestion(question);
        question_sub1.setStatus(status);
        question_sub1.setTeacher_id(teacher_id);
        question_sub1.setLevel_id(level_id);
        question_sub1.setTopic_id(topic_id);


         //for insert answer
        answer question_sub3 = new answer();
        question_sub3.setAnswer(answer);
        question_sub3.setMark(markah);

        //for insert gambar
         Part filePart =request.getPart("image");
        testimage testimage1=new testimage();
      InputStream inputStream=null;

        if(filePart != null){
            System.out.println(filePart.getName());
            System.out.println(filePart.getSize());
            System.out.println(filePart.getContentType());

            inputStream =filePart.getInputStream();

        }
        testimage1.setGambar(inputStream);

        testimage1.setId("abc");
        try {
            Facade facade = new Facade();

            ArrayList<sub_topic> sub_topicssss = facade.getsub_topic();
            sub_topic[] temp = new sub_topic[sub_topicssss.size()];
            request.setAttribute("sub_topicssss",sub_topicssss.toArray(temp));

            ArrayList<subject> subjectttt = facade.getsubject();
            subject[] tempp = new subject[subjectttt.size()];
            request.setAttribute("subjectttt",subjectttt.toArray(tempp));




            int status1 = facade.addquestion_sub(question_sub1);
            int status2 = facade.addanswer(question_sub3);
            int status3 =facade.addGambar(testimage1);


            if (status1 != -1) {
                message = "<h2 style='color:red'>Success</h2>";
            } else {
                message = "<h2>Fail</h2>";
            }

            if (status2 != -1) {
                message = "<h2 style='color:red'>Success</h2>";
            } else {
                message = "<h2>Fail</h2>";
            }

            if (status3 != -1) {
                message = "<h2 style='color:red'>Success</h2>";
            } else {
                message = "<h2>Fail</h2>";
            }








            facade.closeConnection();
        } catch (SQLException e) {

            e.printStackTrace();
            request.setAttribute("message",
                    "<h2 style='color:red'>" + e.getMessage() + "</h2>");
            request.getRequestDispatcher("WEB-INF/addquestion.jsp")
            .forward(request, response);

        } finally {

            request.setAttribute("message", message);
            request.getRequestDispatcher("WEB-INF/addquestion.jsp").forward(request, response);
        }
    }
}

在我的控制器中

             public int addGambar(testimage testimage1) throws SQLException {

    //Blob img;
    //byte [] imgdata=null;

    Connection connection = facade.getConnection();

    PreparedStatement ps = connection.prepareStatement("insert into testimage (id,gambar) values (?,empty_blob()) returning gambar into ?");
    ps.setString(1,testimage1.getId());  
    ps.setBlob(2, testimage1.getGambar()); 


    System.out.println("nie dalam controller gambar");
    System.out.println(testimage1.getId());
    System.out.println("nie dalam controller gambar");
    int status4 = ps.executeUpdate();
    return status4;
}
4

1 回答 1

1

The error message means that you are using an old JDBC driver from before setBlob(int, InputStream) was added (Java 6).

Use a newer JDBC driver, e.g. from 11g R2. A newer driver can still talk to a 9i server.

Just make sure you use an ojdbc6.jar file (or higher).

于 2016-05-22T13:49:46.890 回答