打印本文 打印本文 关闭窗口 关闭窗口
JAVA类型和SQL类型的匹配
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3375  更新时间:2007/11/14 13:07:18  文章录入:mintao  责任编辑:mintao
sp;                      typeArray[i].getParams());
         }
          // 设定数组中的数据库中的类型名和参数,打印出所有匹配的
         }
          // end for
        }//end while
        String tableNamePrompt = "输入表名 " +  "并回车 ";
        tableName = getInput(tableNamePrompt);
        String createTableString = "create table " + tableName + " (";
        String commaAndSpace = ", ";
        boolean firstTime = true;
        while (true){
              System.out.println("");
              String columnNamePrompt = "输入列名 " +"或不输入任何数据然后回车: ";
         columnName = getInput(columnNamePrompt);
         if (firstTime) {
          if (columnName.length() == 0) {
           System.out.print("至少需要一列;");
           System.out.println(" 请重试");
           continue;
          } else {
           createTableString += columnName + " ";
           // 继续形成创建表的字符串
           firstTime = false;
          }
         } else if (columnName.length() == 0) {
           break;
           // 不输入列时那么创建语句的过程结束
         } else {
          createTableString += commaAndSpace
           + columnName + " ";
         }
         // 在成功接收到列名后,以下显示可用的类型名
         System.out.println("");
         System.out.println("可用的类型名为:  ");
         for (int i = 0; i < typeArray.length; i++) {
          if (! typeArray[i].needsToBeSet()) {
          // 如果设置了本地数据库中的名和参数,说明这个jdbc类型可以用
           System.out.println(typeArray[i].getSQLType());
          // 返回jdbc中对应的SQL类型名
          } 
         }
         System.out.println("");
      int index;
         while (true) {//循环直到输入可用的类型
          String typePrompt = "从列表中输入列的类型 " +
            "并回车";
          sqlType = getInput(typePrompt);
          for (index = 0; index < typeArray.length; index++) {
           if (typeArray[index].getSQLType().
            equalsIgnoreCase(sqlType)){
           // 比较两个字符串是否相等,不区分大小写
           // 如果有相等的说明输入的类型是jdbc允许的类型,就跳出
            break;
           }
          }
          if (index < typeArray.length) {
           // 如果index小于typeArray数组的个数,说明有匹配的
           break;
           // 跳出while(true)循环
          }
          System.out.println("");
          System.out.print(sqlType + " 与允许的类型不匹配");
         
          System.out.println("");
         }
         String params;
         String localTypeName;
         params = typeArray[index].getParams();
           // 获取类型的参数,此时的index是输入的类型在数组中的索引
         localTypeName = typeArray[index].getLocalType();
           // 获取数据库中这种类型名
         String paramString;
             String parameterPrompt = "输入 " + params + ":  ";
          paramString = "(" + getInput(parameterPrompt) + ")";
         createTableString += localTypeName + paramString;
           // 注意,形成创建表字符串的是用本地类型名,不是用jdbc中的类型名
           // 前面输入的时候用的是jdbc中的名字
        }
           // 创建语句输入部分结束
        createTableString += ")";
        System.out.println("");
        System.out.print("你输入的创建表的语句是:");
       
        System.out.println(createTableString);
        System.out.println("");
           stmt.execute(createTableString);
           // 执行创建表的语句
          rs=dbmd.getColumns(null,"SYSTEM",tableName.toUpperCase(),"%");
          System.out.println("表的信息为:表名,列名,类型号,类型名");
          while(rs.next()) {
      &nb

上一页  [1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口