0

这就是我需要创建的。我有一个网站,用户可以根据他们的需要/要求来设计申请表。基本上,网站中有一个 HTML 设计器可以执行此操作。用户可以拖放 HTML 组件,从而在纯 HTML 中创建应用程序表单。例如,为了创建“个人部分”,用户可以拖放标签组件和文本框组件,并将标签文本作为“名字”等等。我需要根据一个用户创建的表单创建一个数据库。如果他只使用 FirstName 和 LastName 创建了个人部分,则创建的表应该只有这两个列。(即,由用户在创建表单时决定 col 名称,用于插入和更新数据库字段的 SQL 查询都应该动态执行)。请帮我解决这个问题。有什么建议的模式可以应用吗?(Web 应用程序是使用 Java 创建的)

任何帮助将不胜感激

谢谢

4

1 回答 1

0

您可能需要为某种形式的表单构建器编写代码,该构建器可以即时构建表单,并且可以从以下代码中获取帮助来创建动态 sql 表。这只是一个提示,不是您问题的完美解决方案

尝试 {

   Class.forName("com.mysql.jdbc.Driver");  

   Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctest", "root", "123");  
   Statement st = con.createStatement();  

   System.out.println("connection has been made ");  

   Scanner scanner = new Scanner(System.in);  
   System.out.println("please enter table name ");  
   String tableName = scanner.next();  

   String strr = null;  

   System.out.println("Enter no of columns you like to use: ");  
   int noc = scanner.nextInt();  

   for (int i = 1; i <= noc; i++) {  
    BufferedReader bf = new BufferedReader(new InputStreamReader(  
      System.in));  
    System.out.println("Enter column name with type ");  
    String s1 = bf.readLine();  
    if (strr == null) {  
     strr = s1;  

    } else {  
     strr = strr + s1;  

    }  

   }  

   st.executeUpdate("create table " + tableName + "(" + strr + ")");  
   System.out.println("your table " + tableName  
     + " has been created!!!");  

   ResultSet rs = st.executeQuery("SELECT * FROM " + tableName);  
   ResultSetMetaData rsmd = rs.getMetaData();  
   int NumOfCol = rsmd.getColumnCount();  
   System.out.println("Number of Columns of your table =" + tableName  
     + " " + NumOfCol);  
   System.out.println("Column names are ");  
   for (int i = 1; i <= NumOfCol; i++) {  
    System.out.println(rsmd.getColumnName(i));  
   }  
   String strn = null;  
   System.out.println("please enter values you need to insert");  

   for (int i = 1; i <= NumOfCol; i++) {  
    String s5 = scanner.next();  
    if (strn == null) {  
     strn = s5;  

    } else  
     strn = strn + s5;  

   }  
   System.out.println(strn);  

   st.executeUpdate("insert into " + tableName + " values" + "("  
     + strn + ")");  
   System.out.println("your table " + tableName  
     + " has been filled!!!");  

   con.close();  
   System.out.println("connection has been colsed ");  

  }  

  catch (Exception e) {  

   System.out.println(e.getMessage());  
  }  
于 2013-06-04T13:45:52.657 回答