Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在运行时在mysql表中创建列_Java_Mysql_Jsp - Fatal编程技术网

Java 如何在运行时在mysql表中创建列

Java 如何在运行时在mysql表中创建列,java,mysql,jsp,Java,Mysql,Jsp,在我的web应用程序中,我有一个表单,我根据需要创建动态选择框和文本框。它可以大于1,默认情况下有一对选择框和文本框,我的表有两列用于存储该选择框和文本框的值,值存储在我的表中,但问题是,若我在表单中添加了多对select和text框,那个么如何在表中存储值呢?是否可以根据需要在运行时在表中创建列。如果您可以计算文本框和选择框的数量,则可以在运行时使用sql的alter table查询动态添加列。您可以使用良好的旧JDBC轻松创建列;你可以看到。正如其他人所建议的,这不是一种合适的设计方法 我不

在我的web应用程序中,我有一个表单,我根据需要创建动态选择框和文本框。它可以大于1,默认情况下有一对选择框和文本框,我的表有两列用于存储该选择框和文本框的值,值存储在我的表中,但问题是,若我在表单中添加了多对select和text框,那个么如何在表中存储值呢?是否可以根据需要在运行时在表中创建列。

如果您可以计算文本框和选择框的数量,则可以在运行时使用sql的alter table查询动态添加列。

您可以使用良好的旧JDBC轻松创建列;你可以看到。正如其他人所建议的,这不是一种合适的设计方法


我不知道使用JPA是否可行,因为表创建是需要在persistence.xml中指定的属性。JPA可以自动创建表,但每次希望将数据持久化到现有表时,您都会丢失所有数据,除非存在我不知道的覆盖配置参数。

您为应用程序创建了一个错误的架构。 要简单地解决此问题,请尝试以下模式:

groupid, selectbox, textbox
并将数据存储在更多行中

例如,如果有2对框,则存储两行:

1, 'select', 'text'
1, 'select2', 'text2'

等等。

不建议在运行时基于用户交互在表中创建新列。在我看来,这不是一个好方法。与在运行时添加字段相比,您可能更好地重新考虑现有架构。我建议您再创建一列作为ID,并为每个新创建的文本框关联一个唯一的数字,并用该ID和数据列中的数据保存一行。这只是一个想法,因为我不知道实际的设计是什么。。怎样如果我有3对选择框和文本框,您能指定示例查询吗?该表包含一定数量的数据,如果我们在运行时更改其结构,该表中的数据将保持原样吗?