2017-05-08 64 views
0
public static void main(String[] args) { 
    try { 
     Connection c = null; 
     Class.forName("org.postgresql.Driver"); 
     c = DriverManager.getConnection(
       "jdbc:postgresql://localhost:5432/postgres", // db 
       "postgres", // account 
       "ForOnlyOneTick1" // password 
     ); 


     Object loc = Dimension.class; 
     PreparedStatement insertNew = c 
       .prepareStatement("CREATE TYPE loc AS (?);"); 
     insertNew.setObject(1, loc); 

     insertNew.executeUpdate(); 
     insertNew.close(); 

     c.close(); 

    } catch (Exception e) { 
     //e.printStackTrace(); 
     System.err.println(e.getClass().getName() + ": " + e.getMessage()); 
    } 

} 

在那個例子中,我嘗試在我的數據庫中創建一個Dimension類型。 但它不起作用。POSTGRES SQL JAVA用java類創建自定義類型

有可能創建一個具有特定類型java類的列?

或者我可以只使用他們知道我的數據庫類型?

例如:

CREATE TYPE location AS (x int, y int, z int, name VARCHAR(15)); 

OK,但問題仍然存在,如果我需要創建一個類型爲:

CREATE TYPE land AS (area Dimension, people ListPeople, probability int, cause Causes); 

尺寸,ListPeople,原因是我的自定義類與公共價值等類。

回答

0

數據庫對Java類一無所知。定義數據類型時,您需要明確列出所有列。

你可以這樣做:

CREATE TYPE dimension AS (x int, y int); 
CREATE TYPE listpeople AS (names text[], etc.); 
CREATE TYPE land AS (area dimension, people listpeople, etc.);