2017-07-14 46 views
0

我需要使用Spring和PostgreSQL作爲Database.I需要向數據庫中輸入一些包含String ArrayList的對象:ArrayList < String>。我的問題是,我不能找到一種方法將我的數組列表設置爲preparedStatement。我嘗試了setObject,但它顯然不工作。不言而喻如下:Java Spring將Arraylist插入postgresql數據庫JdbcTemplate

public int insert(Location location) { 
     return jdbcTemplate.update(conn -> { 
      PreparedStatement ps = conn.prepareStatement(INSERT_STMT); 
      ps.setInt(1, location.getParam1()); 
      ps.setString(2, location.getParam2()); 
      ps.setString(3, location.getParam3()); 
      ps.setString(4, location.getParam4()); 
      ps.setString(5, location.getParam5()); 
      ps.setString(6, location.getParam6()); 
      ps.setString(7, location.getParam7()); 
      ps.setObject(8, location.getArrayListDate()); 
      return ps; 
     }); 
    } 
private static final String INSERT_STMT = 
     " insert into locations (param1, param2, param3, param4, param5, param6, param7, dates)" 
       + " values (?, ?, ?, ?, ?, ?, ?, ?)" 
     ; 

的表格形式:

create table locations (
    param1 int primary key 
    , param2 text 
    , param3 text 
    , param4 text 
    , param5 text 
    , param6 text 
    , param7 text 
    , dates TEXT[] 
) 

我怎樣才能使這項工作?謝謝:)

回答

0

你需要使用conn.createArrayOf()java.util.ArrayList轉換爲java.sql.Array並把它作爲

pstmt.setArray("text", array) 

參考this

+0

它woked謝謝!我只需要添加:String [] data = location.getDate()。toArray(new String [location.getDate()。size()]);將我的數據列表轉換爲字符串列表! – Tirvax

+0

@王家明如果它適合你,那麼至少接受z21的答案。 – kamwo

相關問題