PostgreSQL Data Type | SQL/JDBC Data Type | Java Type |
bool | BIT | boolean |
bit | BIT | boolean |
int8 | BIGINT | long |
bigserial | BIGINT | long |
oid | BIGINT | long |
bytea/blob | BINARY | byte[] |
char | CHAR | String |
bpchar | CHAR | String |
number/numeric | NUMERIC | java.math.BigDecimal |
int4 | INTEGER | int |
serial | INTEGER | int |
int2 | SMALLINT | short |
smallserial | SMALLINT | short |
float4 | REAL | float |
float8 | DOUBLE | double |
money | DOUBLE | double |
name | VARCHAR | String |
text/clob | VARCHAR | String |
varchar/varchar2 | VARCHAR | String |
date | DATE | java.sql.Date |
time | TIME | java.sql.Time |
timetz | TIME | java.sql.Time |
timestamp/datetime | TIMESTAMP | java.sql.Timestamp |
timestamptz | TIMESTAMP | java.sql.Timestamp |
cardinal_number | DISTINCT | Mapping of underlying type |
character_data | DISTINCT | Mapping of underlying type |
sql_identifier | DISTINCT | Mapping of underlying type |
time_stamp | DISTINCT | Mapping of underlying type |
yes_or_no | DISTINCT | Mapping of underlying type |
xml | SQLXML | java.sql.SQLXML |
refcursor | REF_CURSOR | Undefined |
_abc | ARRAY | java.sql.array |
1 REF_CURSOR doesn’t appear in the jdbc appendices, but is mentioned in section “13.3.3.4 REF Cursor Support” of the specification, and may map to Types.REF_CURSOR.
2 _abc stands for one of many ARRAY data types available in PostgreSQL (_record to _yes_or_no).
pg数组对应对应java类型为:java.sql.Array。如下:
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();
}
https://www.iteye.com/problems/90761测试的几种方式都没通过。
c和sql类型的对应关系
Table 37.2. Equivalent C Types for Built-in SQL Types
SQL Type | C Type | Defined In |
| | |
| | |
| | |
| | (compiler built-in) |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |