如何使用Java在数据库中插入值,其中要插入的参数数量可能会有所不同

拉杰·桑普伊

我正在创建一个函数,用户需要提供表名和存储值的json文件的路径,并将其插入数据库: insertData(String tablename, String jsonFilePath)

现在,如果我事先知道要插入的值的数量是多少,那么创建一个类似以下内容的PreparedStatement就很容易了:

String strQuery = "INSERT INTO tablename VALUES (?, ?)";
            PreparedStatement stmt = conn.prepareStatement(strQuery);//prepare the SQL Query
            stmt.setString(1, "abc");//insert homeid
            stmt.setInt(2, "def");//insert featureid.
            stmt.executeQuery();//execute query

但是,由于我事先不知道表名是什么,并且每个表的列数可能会有所不同,因此我该如何处理它,因为我需要在需要放置的地方提前创建SQL查询字符串“ strQuery”这 ?

以赛亚·范德·埃尔斯特

由于insert语句的结构可能会更改,因此可以动态生成语句。如果您不打算重用准备好的语句,则没有任何真正的好处。以下是使用语句(与准备好的语句相反)动态生成语句的示例:

public boolean insert(Connection conn, String table, List<String> columns, List<String> values) throws SQLException {
    StringBuilder sb = new StringBuilder();

    sb.append("INSERT INTO ");
    sb.append(table);
    sb.append(" (");

    // add columns
    Iterator<String> it = columns.iterator();
    sb.append(it.next());
    while(it.hasNext()) {
        sb.append(',');
        sb.append(it.next());
    }

    sb.append(") VALUES (");

    // add values
    it = values.iterator();
    sb.append(it.next());
    while(it.hasNext()) {
        sb.append(',');
        sb.append(it.next());
    }

    sb.append(");");

    // insert
    try (Statement stmt = conn.createStatement()) {
        return stmt.execute(sb.toString());
    }
}

请注意,此代码不会执行正确的验证。例如,如果两个列表中的任何一个为空,将发生错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

接受来自标准输入的用户输入,其中可变输入的数量可能会有所不同

来自分类Dev

如何在 LxWxT 列表中找到匹配,其中 L 和 W 的位置可能会有所不同

来自分类Dev

当我使用几种不同的显示单元格的方式时,UITableView单元格中的高度可能会有所不同吗?

来自分类Dev

当我使用几种不同的显示单元格的方式时,UITableView单元格中的高度可能会有所不同吗?

来自分类Dev

如何按2个列名对数据流进行排序(列号可能会有所不同)?

来自分类Dev

可变模板变量可能会有所不同吗?

来自分类Dev

如何从表格中删除某个值,该值在Excel中会有所不同

来自分类Dev

用于始终会有所不同的变量的插入语句

来自分类Dev

如何在python中提取部分字符串(字符串长度可能会有所不同)

来自分类Dev

在数据库中插入值

来自分类Dev

如何在数据库中插入$ _POST值

来自分类Dev

无法使用php在数据库中插入值

来自分类Dev

无法使用php在数据库中插入值

来自分类Dev

使用asp.net在数据库中插入数据时如何避免重复值?

来自分类Dev

当类中的counter较大时,为什么java线程的行为会有所不同?

来自分类Dev

如何使用mysql查询在数据库中插入除少数行以外的所有行的值

来自分类Dev

如果代码中有任何错误,如何在数据库表中插入值?

来自分类Dev

如何使用nodejs在数据库中插入和更新现有数据?

来自分类Dev

如何使用php在数据库的单列中插入多个复选框值

来自分类Dev

如何使用for每个循环在数据库中插入数组值

来自分类Dev

C / C ++中char *(字符指针)的大小是否有所不同?-用于数据库列固定大小

来自分类Dev

使用mysqli和oops创建数据库并在数据库中插入值

来自分类Dev

R regex查找两个相同字符串的单词,顺序和距离可能会有所不同

来自分类Dev

设置为相同的数量后,按钮和输入高度会有所不同

来自分类Dev

当我的html中有两个不同的名称时,如何在数据库中插入数据?

来自分类Dev

如何使用Java SQL将具有不同数据类型的数据库表插入

来自分类Dev

如果基于Json值进行数据绑定,则敲除Js呈现的方式会有所不同

来自分类Dev

如何使用PDO插入数据库中要插入更改的列?

来自分类Dev

SQL脚本的行为有所不同,具体取决于它是在数据库主机上运行还是在其他主机上运行

Related 相关文章

  1. 1

    接受来自标准输入的用户输入,其中可变输入的数量可能会有所不同

  2. 2

    如何在 LxWxT 列表中找到匹配,其中 L 和 W 的位置可能会有所不同

  3. 3

    当我使用几种不同的显示单元格的方式时,UITableView单元格中的高度可能会有所不同吗?

  4. 4

    当我使用几种不同的显示单元格的方式时,UITableView单元格中的高度可能会有所不同吗?

  5. 5

    如何按2个列名对数据流进行排序(列号可能会有所不同)?

  6. 6

    可变模板变量可能会有所不同吗?

  7. 7

    如何从表格中删除某个值,该值在Excel中会有所不同

  8. 8

    用于始终会有所不同的变量的插入语句

  9. 9

    如何在python中提取部分字符串(字符串长度可能会有所不同)

  10. 10

    在数据库中插入值

  11. 11

    如何在数据库中插入$ _POST值

  12. 12

    无法使用php在数据库中插入值

  13. 13

    无法使用php在数据库中插入值

  14. 14

    使用asp.net在数据库中插入数据时如何避免重复值?

  15. 15

    当类中的counter较大时,为什么java线程的行为会有所不同?

  16. 16

    如何使用mysql查询在数据库中插入除少数行以外的所有行的值

  17. 17

    如果代码中有任何错误,如何在数据库表中插入值?

  18. 18

    如何使用nodejs在数据库中插入和更新现有数据?

  19. 19

    如何使用php在数据库的单列中插入多个复选框值

  20. 20

    如何使用for每个循环在数据库中插入数组值

  21. 21

    C / C ++中char *(字符指针)的大小是否有所不同?-用于数据库列固定大小

  22. 22

    使用mysqli和oops创建数据库并在数据库中插入值

  23. 23

    R regex查找两个相同字符串的单词,顺序和距离可能会有所不同

  24. 24

    设置为相同的数量后,按钮和输入高度会有所不同

  25. 25

    当我的html中有两个不同的名称时,如何在数据库中插入数据?

  26. 26

    如何使用Java SQL将具有不同数据类型的数据库表插入

  27. 27

    如果基于Json值进行数据绑定,则敲除Js呈现的方式会有所不同

  28. 28

    如何使用PDO插入数据库中要插入更改的列?

  29. 29

    SQL脚本的行为有所不同,具体取决于它是在数据库主机上运行还是在其他主机上运行

热门标签

归档