今天在用 PreparedStatement 往postgresql數據庫中 傳入enum類型數據的時候就報錯,比如我數據庫中枚舉定義的是pet_type類型的枚舉類型,一開始我是這麼寫的:
INSERT INTO pet (pet_id, pet_type, name) VALUES (?, ?, ?)
pstmt.setString(2, "conn");
然後就一直報錯,說我傳入的是string類型,而要求傳入的是我那個字段的 pet_type 枚舉類型,
因爲之前我寫的是python,python中對於數據庫傳枚舉是可以直接傳入相應的字符串就可以了,所以就一臉懵逼。
網上找了很多相關的資料,但遺憾都沒找到,可咋整呢,
不過運氣不錯最終還是找到了 ,加一個cast就好了;
INSERT INTO pet (pet_id, pet_type, name) VALUES (?, CAST(? AS pet_type), ?)
pstmt.setString(2, "conn");