yougehubi 2016-05-20 06:44 采纳率: 46.9%
浏览 2480

关于java判断oracle中的表是否存在,不存在则创建一个表的问题

代码如下
try{
Class.forName("oracle.jdbc.driver.OracleDriver");

String url = "jdbc:oracle:thin:@"+localhost+":"+port+":"+dbname;
conn = DriverManager.getConnection(url, UserName, Password);
System.out.print("数据库"+dbname+"已连接");
Statement stmt = conn.createStatement();
String sql="select id from TB_TIMESTAMP";
ResultSet rs = stmt.executeQuery(sql);
if(!rs.next()){
StringBuilder sql2 = new StringBuilder();
sql2.append("CREATE TABLE 'SYSTEM'.'TB_TIMESTAMP' ");
sql2.append("( 'ID' NUMBER(11,0) NOT NULL ENABLE,");
sql2.append("'ST_ENTRY_TIME' DATE DEFAULT to_date('2011-1-11,11:11:11','yyyy-mm-dd,hh24:mi:ss') NOT NULL ENABLE,");
sql2.append("'ST_CONTENT' VARCHAR2(4000 BYTE) DEFAULT ' ' NOT NULL ENABLE,");
sql2.append("'ST_CLIENT_ID' VARCHAR2(40 BYTE) DEFAULT ' ' NOT NULL ENABLE,");
sql2.append("'ST_STATUS' NUMBER(1,0) DEFAULT '1' NOT NULL ENABLE, ");
sql2.append("'ST_FAIL_INFO' VARCHAR2(255 BYTE) DEFAULT NULL, ");
sql2.append("'ST_NOT_AFTER' DATE DEFAULT to_date('2011-1-11 11:11:11','yyyy-mm-dd hh24:mi:ss'), ");
sql2.append("'ST_SIGNER_CN' VARCHAR2(128 BYTE) DEFAULT NULL,");
sql2.append("'ST_SIGNER_SERIAL_NUM' VARCHAR2(128 BYTE) DEFAULT NULL,");
sql2.append("'ST_ISSUER_CN' VARCHAR2(128 BYTE) DEFAULT NULL, ");
sql2.append("'ST_ISSUER_SERIAL_NUM' VARCHAR2(128 BYTE) DEFAULT NULL, ");
sql2.append(") PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255");
sql2.append("NOCOMPRESS LOGGING");
sql2.append("INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645");
sql2.append("STORAGE(");
sql2.append("PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1");
sql2.append("BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)");
sql2.append("TABLESPACE 'SYSTEM'");
try{
int i =stmt.executeUpdate(sql2.toString());
if(i!=0){System.out.print("数据表创建成功");}
else{System.out.print("数据表创建失败");}}
catch(Exception e){e.getMessage();}
}
catch(Exception e){e.printStackTrace();}
并没有什么错误,但是执行String sql="select id from TB_TIMESTAMP";
ResultSet rs = stmt.executeQuery(sql);一旦没有表就会直接跳出try语句进入catch中,怎么样安排语句能让这个程序达到我想要的目的呢

  • 写回答

2条回答 默认 最新

  • yougehubi 2016-05-20 07:15
    关注

    求大神帮忙看一下,怎么安排一下程序的逻辑顺序

    评论

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R