我遇到了一个有趣的问题,因为...我有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