如何在Java中创建一个在Oracle数据库中创建表和修改数据并具有多种用途的程序
正如标题所示。我想创建一个java程序,在这个程序中,我将能够使用OracleBase/JDBC创建表和修改数据,并且我希望它有多种用途。可悲的是,当我在谷歌上搜索“oracle创建表”时,只有一些程序在一次使用后就没用了 现在我尝试了类似的方法,但它不起作用,因为程序说表不存在如何在Java中创建一个在Oracle数据库中创建表和修改数据并具有多种用途的程序,java,oracle,jdbc,create-table,Java,Oracle,Jdbc,Create Table,正如标题所示。我想创建一个java程序,在这个程序中,我将能够使用OracleBase/JDBC创建表和修改数据,并且我希望它有多种用途。可悲的是,当我在谷歌上搜索“oracle创建表”时,只有一些程序在一次使用后就没用了 现在我尝试了类似的方法,但它不起作用,因为程序说表不存在 try{ boolean tableExists; Statement statement = createStatement(); String sql1 = "SELECT * FROM t
try{
boolean tableExists;
Statement statement = createStatement();
String sql1 = "SELECT * FROM tableName";
While(statement.execute(sql1)){
tableExists = true;
break;
}
while(tableExists= false){
String sql2 = "CREATE TABLE tableName(id integer not null, name char(10) not null)";
statement.execute(sql2);
tableExists = true;
break;
}
} catch (Exception e) {
e.printStackTrace();
return;
}
首先,您不必使用
,而语句基本上是if
的情况
其次,您的代码有Java语法级别的问题,比如语句,while(tableExists=false)
,所以您似乎对Java也是新手
第三,若表不存在,您的第一个调用语句.execute(sql1)
将抛出一个异常
,控件将直接转到catch块&您的第二个语句将不会执行。因此,我将修改您的代码如下
另外,请注意,第二个查询需要是executeUpdate
&而不是execute
…请参阅
请注意,这仍然不是一个很好的防愚代码,因为控件也可以去捕捉其他错误的块&不仅仅是表存在问题。表不存在是引发异常的众多原因之一&您可能需要检查跟踪消息,以确切了解表不存在是否是真正的问题,或者可以使用类似的方法存在
在SQL中,仅当表不存在时才尝试创建表 看起来您的逻辑不正确,而(tableExists=false)您最好使用内置的jdbc元数据函数-声明时tableExists
有什么值?首先初始化变量boolean tableExists=false
并更改while(!tableExists){此处的逻辑…}
try{
boolean tableExists = false;
Statement statement = createStatement();
String sql1 = "SELECT * FROM tableName";
if(statement.execute(sql1)){
tableExists = true;
}
// do other things
return ;
} catch (Exception e) {
e.printStackTrace();
if(!tableExists){
String sql2 = "CREATE TABLE tableName(id integer not null, name char(10) not null)";
statement.executeUpdate(sql2);
tableExists = true;
}
return;
}