PreparedStatement enum

今天在用 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");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章