CREATE TABLE city_example ( country TEXT, cities TEXT[] );
try { String[] usa = {"New York", "Chicago", "San Francisco"}; String[] canada = {"Montreal", "Toronto", "Vancouver"}; String[] uk = {"London", "Birmingham", "Oxford"}; /* Convert String[] to java.sql.Array using JDBC API */ Array arrayUSA = conn.createArrayOf("text", usa); Array arrayCanada = conn.createArrayOf("text", canada); Array arrayUK = conn.createArrayOf("text", uk); String sql = "INSERT INTO city_example VALUES (?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, "USA"); pstmt.setArray(2, arrayUSA); pstmt.executeUpdate(); pstmt.setString(1, "Canada"); pstmt.setArray(2, arrayCanada); pstmt.executeUpdate(); pstmt.setString(1, "UK"); pstmt.setArray(2, arrayUK); pstmt.executeUpdate(); conn.commit(); } catch (Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); }
select * from city_example ; country | cities ---------+-------------------------------------- USA | {"New York",Chicago,"San Francisco"} Canada | {Montreal,Toronto,Vancouver} UK | {London,Birmingham,Oxford} (3 rows)
try { String sql = "SELECT * FROM city_example"; PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); while(rs.next()) { System.out.println("Country: " + rs.getString(1)); System.out.println("---------------"); Array cities = rs.getArray(2); String[] str_cities = (String[])cities.getArray(); for (int i=0; i<str_cities.length; i++) { System.out.println(str_cities[i]); } System.out.println(""); } } catch (Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); }
Country: USA --------------- New York Chicago San Francisco
Country: Canada --------------- Montreal Toronto Vancouver
Country: UK --------------- London Birmingham Oxford
try { String[] usa = {"New York", "Chicago", "San Francisco", "Miami", "Seattle"}; Array arrayUSA = conn.createArrayOf("text", usa); String sql = "UPDATE city_example SET cities = ? WHERE country = 'USA'"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setArray(1, arrayUSA); pstmt.executeUpdate(); conn.commit(); } catch (Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); }
select * from city_example ; country | cities ---------+---------------------------------------------------- Canada | {Montreal,Toronto,Vancouver} UK | {London,Birmingham,Oxford} USA | {"New York",Chicago,"San Francisco",Miami,Seattle} (3 rows)
Source: https://habr.com/ru/post/301566/
All Articles