想要为我的代码添加验证,如果 table 不存在,它应该在 java 中创建新的 table
Want to add validation to my code , if table doesn't exist it should create the new table in java
请不要将我的问题标记为重复我尝试了其他解决方案,但它们没有用。
我正在尝试进行验证,如果 table 不存在则创建。
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() ,它在 table 时返回“0”
现存的。当我提供 table_name 时它返回相同的值
这是不存在的。
当您使用 executeupdate 创建一个 table 时,您没有执行 INSERT 或 UPDATE,因此您得到“0”,因为没有行受到影响
这个link可能有用:-
executeUpdate() returns zero despite correct execution
来自 javadocs :
"either (1) the row count for SQL Data Manipulation Language (DML) statements or (2) 0 for SQL statements that return nothing"
https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#executeUpdate(java.lang.String)
这意味着无论 table 是否存在,您的 DDL 语句总是 return 0。
请不要将我的问题标记为重复我尝试了其他解决方案,但它们没有用。 我正在尝试进行验证,如果 table 不存在则创建。
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() ,它在 table 时返回“0” 现存的。当我提供 table_name 时它返回相同的值 这是不存在的。
当您使用 executeupdate 创建一个 table 时,您没有执行 INSERT 或 UPDATE,因此您得到“0”,因为没有行受到影响
这个link可能有用:-
executeUpdate() returns zero despite correct execution
来自 javadocs :
"either (1) the row count for SQL Data Manipulation Language (DML) statements or (2) 0 for SQL statements that return nothing"
https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#executeUpdate(java.lang.String)
这意味着无论 table 是否存在,您的 DDL 语句总是 return 0。