java - visual - تحميل mysql




لا يمكن إصدار عبارات معالجة البيانات باستخدام executeQuery() (5)

في MySQL لدي جدولين ، tableA و tableB . أحاول تنفيذ استعلامين:

executeQuery(query1) 
executeQuery(query2)

لكنني أتلقى الخطأ التالي:

can not issue data manipulation statements with executeQuery().

ماذا يعني هذا؟


استخدم executeUpdate() لإصدار عبارات معالجة البيانات. يتم فقط استخدام executeQuery() للاستعلامات SELECT (مثل الاستعلامات التي ترجع مجموعة نتائج).


بالإضافة إلى executeUpdate () على الأقواس ، يجب أيضًا إضافة متغير لاستخدام عبارة SQL.

فمثلا:

PreparedStatement pst =  connection.prepareStatement(sql);
int numRowsChanged = pst.executeUpdate(sql);

لمعالجة البيانات تحتاج فعليًا إلى executeUpdate() بدلاً من executeQuery() .

هنا مقتطف من executeUpdate() التي هي بالفعل إجابة في حد ذاتها:

تنفيذ عبارة SQL المعطاة ، والتي قد تكون عبارة INSERT أو UPDATE أو DELETE أو عبارة SQL التي تقوم بإرجاع أي شيء ، مثل عبارة SQL DDL.



يعمل هذا الرمز بالنسبة لي: أقوم بتعيين القيم التي تحتوي على INSERT واحصل على LAST_INSERT_ID () لهذه القيمة مع SELECT؛ يمكنني استخدام جافا NetBeans 8.1 ، MySql و java.JDBC.driver

                try {

        String Query = "INSERT INTO `stock`(`stock`, `min_stock`,   
                `id_stock`) VALUES ("

                + "\"" + p.get_Stock().getStock() + "\", "
                + "\"" + p.get_Stock().getStockMinimo() + "\","
                + "" + "null" + ")";

        Statement st = miConexion.createStatement();
        st.executeUpdate(Query);

        java.sql.ResultSet rs;
        rs = st.executeQuery("Select LAST_INSERT_ID() from stock limit 1");                
        rs.next(); //para posicionar el puntero en la primer fila
        ultimo_id = rs.getInt("LAST_INSERT_ID()");
        } catch (SqlException ex) { ex.printTrace;}






jdbc