当前位置:操作系统 > Unix/Linux >>

判断数据库表是否存在以及修改表名

一、判断数据库表是否存在:
 
首先要拿到数据库连接conn,调用DatabaseMetaData dbmd = conn.getDataMeta();之后调用如下方法:
 
 
  /**
     * 根据表名,判断数据库表是否存在
     * @param tableName
     * @return true:存在该表,false:不存在该表
     */
    public boolean hasTable(String tableName) { 
     Init();
        boolean result = false;                                                       //判断某一个表是否存在
        try{         
         ResultSet set = dbmd.getTables (null, null, tableName, null);             //获取查找结果
         while (set.next()) {                                                            //如果查找结果不为空,则说明存在该表
                result = true;                                                             //将返回结果置为true                                                      
         }
        }catch(Exception e){
         e.printStackTrace();
        }
        return result;
    }
 
二、修改表名:
 
首先依然要拿到数据库连接conn和数据库描述对象dbmd以及Statement对象st,之后调用如下方法
 
 
    /**
     * 修改表名
     * @param srcTableName 源表名
     * @param newTableName 新表名
     * @return true:修改表名成功,false:修改表名失败
     */
    public boolean renameTable(String srcTableName,String newTableName){
     Init();
     boolean result = false;
     StringBuffer sql = new StringBuffer();
     try{
      String dataBaseType = dbmd.getDatabaseProductName();                   //获取数据库类型    
      if(("Microsoft SQL Server").equals(dataBaseType)){                              //sqlServer
       try{
        sql.append("EXEC sp_rename"+" "+srcTableName).append(",").append(newTableName);
        int temp = 0;
        temp = st.executeUpdate(sql.toString());                                              //执行更新操作,返回结果
        if(1==temp){
         result = true;                                                                                         //将返回值设为true
        }
       }catch(Exception e){
        e.printStackTrace();
       }      
      }else if(("HSQL Database Engine").equals(dataBaseType)||("MySQL").equals(dataBaseType)){   //hsql和mysql
       try{
        sql.append("ALTER TABLE"+" "+srcTableName+" "+"RENAME TO"+" "+newTableName);
        int temp = 1;
        temp = st.executeUpdate(sql.toString());                                               //执行更新操作,返回结果
        if(0==temp){    
         result = true;                                                                                          //将返回值设为true
        }
       }catch(Exception e){
        e.printStackTrace();
       }
      }else{  //尚未实现对oracle和db2判断     
   }
     }catch(Exception e){
      e.printStackTrace();
     }    
  //System.out.println(result);
     return result;         
    }
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,