我想用prepareStatement來更新表格。但輸入可能爲空值。通過使用IsNull,它只能應用於varchar,int,double怎麼樣?SQL如何使用prepareStatement更新爲int和double指定帶IsNull的字段?
我會收到一個JSON對象(隻字段必須更新),例如:
{ {
price: 1.56 OR name: "aa", OR ...
} age:10
}
對於int和double,如果該值沒有設置,當我得到的值,它將返回0,當用戶沒有傳遞給我時,如何將它設置爲null?
我的類:
private String name;
private int age;
private double price;
//public get & set method
我的Java:
strQuery = "UPDATE table SET name=IsNull(?, name), age=IsNull(?, age), price=IsNull(?, age) WHERE id= ?";
stmt = (PreparedStatement) conn.prepareStatement(strQuery);
stmt.setString(1, obj.getName()); //string
stmt.setString(2, obj.getAge()); //int
stmt.setString(3, obj.getPrice()); //double
stmt.setString(4, id);
我的問題:
如何捕捉到JSON輸入,如果字段(INT /雙)不可用,則將它設置爲null?
我試着用Double而不是double,這是工作,但我不確定這是否是好方法。 (我是一個完整的新手)
或任何其他最好的方式來做我想做的事情?
如果你想知道nullness,你應該用'Integer'和'Double'來代替。順便說一句:這似乎並不是一個SQL或JDBC問題,它更像是你映射你的JSON的方法之一。 –
你可以分享這個類的代碼嗎?obj'表示的實例?看起來像你應該使用_null對象pattern_來表示和識別未初始化的字段。 –