用事务试试
如Weblogic Server下的JDBC
Context ctx=getInitialContext();
UserTransaction tx=(UserTransaction)ctx.lookup("javax.transaction.UserTransaction");
tx.begin();
try{
//用JNDI从数据源得到连接con
Create Table;
tx.commit();

catch(Exception e){
  try{
     tx.rollback();
  }catch(Exception e1){}

解决方案 »

  1.   

    to fancyerII:
       谢谢!这种方法估计可以解决我的问题,但有没有更简单的一句SQL语句就能做出判断呢?
      

  2.   

    据我所知,创建已存在的表(关系)违反实体完整性,所以会有异常。如果想用简单的方法,除非你用的数据库提供查询数据库中的表名。SQL语句好像没有这样的功能,要不随便来个查询表名,那怎么能安全呢?
      

  3.   

    DatabaseMetaData dbmd=connection.getMetaData();
    Resultset rs=dbmd.getTables(...)你看看这种方法
      

  4.   

    用DatabaseMetaData 的 getTables(...), 我好象不能判断我的表到底存不存在呀。
      

  5.   

    Resultset rs=dbmd.getTables(null,null,"mytable","TABLE")
    if(rs==null){
     mytable is not exist
    }
    else  mytable exists
      

  6.   

    DatabaseMetaData dbmd = con.getMetaData();
    String[]t={"TABLE"};
    ResultSet rs=dbmd.getTables (null,"数据库用户名","表名",t);
    if (rs.next()) System.out.println ("还存在:"+rs.getString(3)+"表");
    else System.out.println ("不存在:"+rs.getString(3)+"表了");