当前位置: 首页 > 面试题库 >

如何在Java Springboot中使用jdbcTemplate将Integer数组插入到postgresql表中?

公孙弘深
2023-03-14
问题内容

我在将Integer数组插入Postgresql Table时遇到问题,该如何解决?

String sql = "INSERT INTO draw_result (id, ball_numbers,  balls_with_mega_ball, draw_dates, mega_plier) VALUES(?, ?, ?, ?, ?)";
        Object[] params = {randomNumbers, ballNumbers, ballNumbersMegaBall, drawDates, megaPlier};
        jdbcTemplate.update(sql, params);

其中ballNumbers和ballNumbersMegaBall是ArrayList。填充2位数字。

这是PostgreSQL表:

CREATE TABLE public.draw_result
(
id bigint NOT NULL,
draw_dates date, 
ball_numbers bigint[],
balls_with_mega_ball bigint[],
mega_plier bigint,
CONSTRAINT draw_result_pkey PRIMARY KEY (id)
)

这是Springboot的错误:

发生意外错误(类型=内部服务器错误,状态= 500)。PreparedStatementCallback; 错误的SQL语法[INSERT INTO
draw_result(id,>
ball_numbers,balls_with_mega_ball,draw_dates,mega_plier)VALUES(?,?,?,?,>?)];嵌套异常是org.postgresql.util.PSQLException:无法推断用于java.util.ArrayList实例的SQL类型。将setObject()与>
explicit Types值一起使用以指定要使用的类型。


问题答案:

最近我有一个类似的问题。我的解决方案:

public void setDrawResult(BigInteger id, List<BigInteger> ballNumbers, List<BigInteger> ballsWithMegaBall, Date drawDates,BigInteger megaPlier){

    String sql = "INSERT INTO draw_result (id, ball_numbers,  balls_with_mega_ball, draw_dates, mega_plier) VALUES(?, ?, ?, ?, ?)";
    jdbcTemplate.update(sql
            , id
            , createSqlArray(ballNumbers)
            , createSqlArray(ballsWithMegaBall)
            , drawDates
            , megaPlier
    );
}

private java.sql.Array createSqlArray(List<BigInteger> list){
    java.sql.Array intArray = null;
    try {
        intArray = jdbcTemplate.getDataSource().getConnection().createArrayOf("bigint", list.toArray());
    } catch (SQLException ignore) {
    }
    return intArray;
}


 类似资料:
  • 我在向Postgresql表中插入整数数组时遇到问题,我该怎么做? 其中ball Numbers和ball NumbersMegaBall是ArrayList。用两位数填充。 以下是PostgreSQL表: 这是来自Springboot的错误: 出现意外错误(类型=内部服务器错误,状态=500)。PreparedStatementCallback;错误的SQL语法[INSERT in draw_r

  • 问题内容: 有没有办法使用PostgreSQL json / hstore ?esp查询支持。 例如: hstore: 对于杰森 问题答案: 尽管对于答案(对于插入部分)而言为时已晚,但我希望对其他人可能有用: 在HashMap中获取键/值对: 使用以下方式之一将它们插入PostgreSQL: 1) 2) 3)在POJO中设置hstoreMap / jsonbObj(Map类型的hstoreCol

  • 我试图使用“load data”语句将CSV数据文件从JMETER插入到POSTGRESQL中。但是LOAD DATA语句不起作用。在internet上,加载语句变得突出显示和工作,但在我的机器上,它没有变得突出显示和错误。 谢了。

  • 我正在尝试获取postgresql表的列名。我尝试过使用information_模式,但在我的javamvc项目中不起作用。我该怎么办? 这实际上是我关于StackOverflow的第一个问题,如果我的问题很难理解,我很抱歉。非常感谢。

  • 本文向大家介绍如何在PostgreSql数据库中插入Python元组?,包括了如何在PostgreSql数据库中插入Python元组?的使用技巧和注意事项,需要的朋友参考一下 默认情况下,PostgreSql数据库安装在端口号5432上。通过安装psycopg2模块提供了PostgreSql的Python接口。假设具有fname,sname,年龄,性别和薪水字段的测试数据库和雇员表可用。 首先通过

  • 我有一个登记表,并将插入数据输入到两个不同的表使用注册功能。这是表结构: 使用者 用户id(int) 用户电子邮件(varchar(64)) 用户名(varchar(64)) 用户通行证(varchar(64)) 轮廓 教授id(int) 用户id(int) 名字(varchar(64)) 姓氏(varchar(64)) …(其他领域) 我将变量放入两个不同的数组($data1) 模型是这样的: