ОК ... я могу понять, что НЕ ИСПОЛЬЗОВАТЬ денежный тип напрямую только потому, что разъем PrepareSatement jdbc4 не содержит setMoney и т. Д., Так что я хочу поделиться некоторыми возможностями ... Конечно, это не окончательный кодпуть, но все же ...
Итак
A) Класс денег от здесь , чтобы получить строку как $ 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.По крайней мере, в моем случае это был временный ответ:)
Надеюсь, это кому-нибудь пригодится :)
Удачи