код ниже exlpains, что выполнить обновление заявление дает исключение в случае
JdbcOdbcDriver
, но не в случае OracleDriver
, так что не всегда necesarry, что оператор выбора будет давать исключение в executeUpdate("Select * ...");
, но это зависит на Драйв мы регистрируем в DriverManager.registerDriver(Driver ob);
некоторые драйвера Может дать исключение, а некоторые не будут
но ответ на свой вопрос вы не должны использовать executeUpdate («Sel ..») для выбора заявления, даже если не дают исключений прочитать ниже код и комментарии и вы будете лучше понимать
import java.sql.*;
import sun.jdbc.odbc.*;
import oracle.jdbc.driver.*;
public class MyDb
{
public static void main(String args[]) throws Exception
{
//drive is oracle.jdbc.driver.OracleDriver;
OracleDriver od=new OracleDriver();
DriverManager.registerDriver(od);
Connection conn;
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","system");
Statement stm= conn.createStatement();
int val=stm.executeUpdate("select * from mylog");
System.out.println(val);
//output for above code is 10 actually the table had 15 rows
//but when table had 7 rows output was 7 ,when number of rows where 9 output was 9
//but when the number of row in table were more than or equal to 10 the out put was 10
//so actually it is no meaning to use select statement within executeQuery
//even if it doesn't give exception
//driver is sun.jdbc.odbc.JdbcOdbcDriver;
JdbcOdbcDriver od2=new JdbcOdbcDriver();
DriverManager.registerDriver(od2);
Connection conn2=DriverManager.getConnection("jdbc:odbc:swap","system","system");
Statement stm2= conn2.createStatement();
int val2=stm2.executeUpdate("select * from mylog");
//while this code gives exception
//Exception in thread "main" java.sql.SQLException: No row count was produced
// at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(Unknown Source)
// at MyDb.main(MyDb.java:19)
System.out.println(val2);
}
}
Непонятный вопрос –
Какое исключение вы получаете? – Nishant
Исключение: java.sql.SQLExcetion, executeUpdate() возвращает более одной строки. – Kiran