В кругах разработчиков, как правило, рекомендуется использовать BigDecimal для денег в Java. Это не значит, что это всегда лучше, чем использовать двойное ИМХО, но я бы посоветовал вам начать с BigDecimal.
Для SQL я предлагаю использовать соответствующий тип NUMERIC или DECIMAL для BigDecimal и REAL для double.
Стоит отметить, что все инвестиционные банки и торговые дома, на которых я работал, использовали double с округлением на деньги (в C ++ и Java). И наоборот, я никогда не видел, чтобы использовался BigDecimal, но я видел NUMERIC, используемый в базах данных. Для целей бухгалтерского учета используйте BigDecimal.