我遇到了一個有趣的問題,因爲...我有MSSQL(2005)表A包含錢類型列;問題是我想用Java代碼中的T-SQL過程調用向此列插入值,但我不太確定應該使用哪種Java類型來爲此列插入值來準備語句? 我找不到任何示例,所以也許你可以分享一些有用的片段。jdbc4 - 如何插入錢類型?
任何有用的註釋表示讚賞
我遇到了一個有趣的問題,因爲...我有MSSQL(2005)表A包含錢類型列;問題是我想用Java代碼中的T-SQL過程調用向此列插入值,但我不太確定應該使用哪種Java類型來爲此列插入值來準備語句? 我找不到任何示例,所以也許你可以分享一些有用的片段。jdbc4 - 如何插入錢類型?
任何有用的註釋表示讚賞
好的...... 我能弄清楚的一點是不能直接使用錢類型,因爲jdbc4連接器的PrepareSatement不包含setMoney等,所以我想分享一些步行......當然,這不是最終代碼的方式,但還是......
所以
A)從here Money類得到的字符串作爲$ 00.00與 displayAsDollars方法
B)創建MSSQL程序與像
create procedure aschema.test @a varchar(10)
AS
BEGIN
DECLARE @b money
SET @b=CAST @a AS MONEY
--todo: insert next...
END;
C代碼),所以調用proc是相當簡單
Money m=new Money("12.99");
callableStatement = (SQLServerCallableStatement) connection.prepareCall(
"{call "+
DATABASE_NAME+
"."+
SCHEMA_NAME+
".test(?)}");
callableStatement.setString(1,m.displayAsDollarsCorrectly());
callableStatement.executeUpdate();
// ...
由於我說這不是最終的代碼決定,而是一個臨時概念,如果你真的需要在舊的mssql數據庫中使用金錢類型,這也可能有幫助。至少這是在我的情況:)
我希望這將是有幫助的人:)
運氣好一個臨時的答案
你不能只用一個double
(或者float
,但可能不會)?另外,你在數據庫中使用MONEY
獲得什麼?我發現DECIMAL
更加可靠和靈活 - 對於一些背景,請參閱http://databases.aspfaq.com/database/what-datatype-should-i-use-for-numeric-columns.html和http://sqlblog.com/blogs/aaron_bertrand/archive/2008/04/27/performance-storage-comparisons-money-vs-decimal.aspx。
電解金屬錳...錢類型是00.00類型平常的事情,所以我在我的MSSQL數據庫中使用它...我聽說Java有錢類型,所以它可以幫助嗎? – user592704
我不確定在Java中是否存在反映「MONEY」的基本類型 - 至少我沒有在此處列出任何此類事物:http://softpixel.com/~cwright/programming/datatypes.java。 PHP。無論如何存儲'00.00','MONEY'不是*「通常的事情」 - 'DECIMAL'是。你讀過我指出的文章嗎? –
沒有原始類型作爲金錢,因爲我可以看到它,但有一個類Money http://www.java2s.com/Code/Java/Data-Type/Moneytype.htm其中包含BigDecimal,所以它可能會有所幫助然後... – user592704