Java 创建具有大量列的准备语句
我必须构建一个insert查询字符串来创建一个准备好的语句。我有Excel文件中的所有列名 表中有250多列,创建一个简单的插入查询需要花费大量的时间和精力。我必须计算列数并将Java 创建具有大量列的准备语句,java,prepared-statement,Java,Prepared Statement,我必须构建一个insert查询字符串来创建一个准备好的语句。我有Excel文件中的所有列名 表中有250多列,创建一个简单的插入查询需要花费大量的时间和精力。我必须计算列数并将?放入查询中的值字段中 是否有其他方法来创建这些查询 请建议。 提前感谢提供了快速插入功能,您可以使用批处理准备语句或从复制(取决于数据库及其驱动程序)-有关更多信息,请参阅。我可以建议一种执行此操作的范例,但根据我的了解,实现它将是一个更大的问题,这是一项相当复杂的任务 您可以使用jxlapi读取这些列名,也可以将它们的
?
放入查询中的值字段中
是否有其他方法来创建这些查询
请建议。
提前感谢提供了快速插入功能,您可以使用批处理准备语句或从复制(取决于数据库及其驱动程序)-有关更多信息,请参阅。我可以建议一种执行此操作的范例,但根据我的了解,实现它将是一个更大的问题,这是一项相当复杂的任务 您可以使用jxlapi读取这些列名,也可以将它们的类型存储在同一个excel文件中(这在准备语句时非常有用) 因此,您的excel将是:
Column 1 | Integer
Column 2 | String
Column 3 | Date
等等
JXL将允许您将所有这些信息读入java程序,并将这些信息存储在映射(java.util.HashMap)中,因此此时您就有了程序中列的名称及其数据类型
现在,关于创建准备好的语句
String allColumnNames ="";
foreach element in the hashmap, allColumnNames+=getKey() + ","
因此,此时allColumnNames具有所有的列名
将准备好的陈述分成几个部分:
String statement = "insert into table ("+ allColumnNames +") values " + <250 ? marks here>;
String语句=“插入表(“+allColumnNames+”)值”+;
这是你准备好的声明
String allColumnNames ="";
foreach element in the hashmap, allColumnNames+=getKey() + ","
在此之后,要插入内容,您可以再次迭代hashmap,并根据hashmap的“值”部分调用setString或setInt或其他任何函数
正如我所说,这是一个漫长而复杂的过程,但您甚至可以修改此过程,只需在excel文件中设置值,然后将它们直接从excel插入表中。您所做的只是一次性工作!您是否在寻找一些机械的解决方法或java解决方案?是的,任何事情都可以,因为我必须编写相同的查询,但需要对10多个表稍作修改