PreparedStatement#setObject(int parameterIndex,Object x)和for循环

时间:2019-05-04 21:53:36

标签: java mysql prepared-statement

我有一个包含不同对象的列表,这些对象具有不同的数据类型,如下所示:

    final List<Object> columns = new ArrayList<>();

    columns.add(player.getUniqueId());
    columns.add(player.getName());
    columns.add(player.getHealth());
    columns.add(player.getFoodLevel());

我正在尝试通过for循环将每个对象添加到PreparedStatement中,如您在此处看到的那样:

            try (final PreparedStatement statement = setup.getConnection().prepareStatement("REPLACE INTO " + setup.getTable() + " VALUES(?,?,?,?)")) {
                for (int i = 0; i < columns.size(); i++) {
                    statement.setObject(i + 1, columns.get(i));
                }

                statement.execute();

            } catch (final SQLException exception) {
                exception.printStackTrace();

            }

我收到此异常消息:“第1行的'uuid'列的字符串值不正确:'\ xAC \ xED \ x00 \ x05sr ...'

该如何解决?

0 个答案:

没有答案