Хотите добавить проверку в мой код, если таблица не существует, она должна создать новую таблицу в Java
Пожалуйста, не отмечайте мой вопрос как дубликат, я пробовал другие решения, но они не работают. Я пытаюсь разместить подтверждение, что, если таблица не существует, то создать.
void checkCreateMeth()
{
try{
System.out.println("Implementing the functionality of create table if not exist or not.");
Class.forName(JDBC_Driver);
con=DriverManager.getConnection(DB_URL, user, pass);
stmt=con.createStatement();
String sql="CREATE TABLE IF NOT EXISTS VGRWER(name varchar(10),stream varchar(10))";
int rs=stmt.executeUpdate(sql);
System.out.println("Value of rs is="+rs);
}catch(Exception e)
{
e.printStackTrace();
}
}
Сначала я использовал exexuteQuery (), он выдавал ошибку "Невозможно выполнить операторы манипулирования данными с executeQuery ()"
Во-вторых, я пытался выполнить executeUpdate (), он возвращал "0", когда таблица существовала. Он вернул то же значение, когда я предоставил table_name, которого не было.
2 ответа
Из Javadocs:
"либо (1) количество строк для операторов языка данных SQL (DML), либо (2) 0 для операторов SQL, которые ничего не возвращают"
https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html
Это означает, что ваш оператор DDL всегда будет возвращать 0 независимо от того, существует таблица или нет.
Когда вы используете executeupdate для создания таблицы, тогда вы не делаете INSERT или UPDATE, поэтому вы получаете "0", так как ни одна строка (строки) не была затронута
Эта ссылка может быть полезна: -
executeUpdate () возвращает ноль, несмотря на правильное выполнение