Sql server 2005 jdbc4-如何插入货币类型?
我面临一个有趣的问题,因为。。。我有MSSQL(2005)表A,其中包含货币类型列;问题是,我想用Java代码中的T-SQL过程调用向该列插入值,但我不太确定应该使用哪种Java类型为该列准备语句来插入值? 我找不到任何例子,所以也许你可以分享一些有用的片段Sql server 2005 jdbc4-如何插入货币类型?,sql-server-2005,jdbc,database-connection,Sql Server 2005,Jdbc,Database Connection,我面临一个有趣的问题,因为。。。我有MSSQL(2005)表A,其中包含货币类型列;问题是,我想用Java代码中的T-SQL过程调用向该列插入值,但我不太确定应该使用哪种Java类型为该列准备语句来插入值? 我找不到任何例子,所以也许你可以分享一些有用的片段 任何有用的评论都很受欢迎您能不能只用一个双精度(或者浮点型,但可能不能)?另外,在数据库中使用金钱可以获得什么?我发现DECIMAL更加可靠和灵活-对于一些背景,请参阅和(很抱歉缺少图像)。好的。。。 我能弄明白的是,不要直接使用money
任何有用的评论都很受欢迎您能不能只用一个
双精度
(或者浮点型
,但可能不能)?另外,在数据库中使用金钱
可以获得什么?我发现DECIMAL
更加可靠和灵活-对于一些背景,请参阅和(很抱歉缺少图像)。好的。。。
我能弄明白的是,不要直接使用money类型,因为jdbc4连接器prepareStatement不包含setMoney等,所以我想与大家分享一些漫游。。。当然,这不是最终的编码方式,但仍然
所以
- A) Money类从获取字符串为$00.00 显示美元方法
- 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();
祝你好运。。。货币类型是00.00类型的常用类型,所以我在MSSQL数据库中使用它。。。我听说Java有money类型,所以它会有帮助吗?我不确定Java中是否有反映
money
的基类型-至少我没有看到这里列出的任何这样的东西:。无论如何,要存储00.00
,MONEY
不是“通常的事情”-DECIMAL
是。你读过我指出的文章了吗?正如我所看到的,没有像money这样的原始类型,但是有一个类money包含BigDecimal,所以它可能会有帮助…最大的问题是我不知道如何在MS jdbc4驱动程序及其PrepareStatement中使用“money”对象。。。那么我应该用什么来“设置”呢?类似setObject(int,Money)的东西?因为我找不到“setMoney(…)”方法there@user592704为什么需要在数据库中使用资金?上面的链接当然指出了一些问题,让我想重新访问一些使用金钱的旧数据库。。。