2010-01-13 35 views
1

Spring JDBC问题:我使用很多对象作为绑定变量,这些对象不会自动映射到它们的JDBC等价物,例如, jdbctemplate.query(sql, foo, bar, wee)foo,barwee是没有被JDBC类型自动转换覆盖的对象的实例。绑定变量的转换策略

SO上的任何人都可以为这种情况下的转换策略提供最佳做法吗?无论如何,大多数情况下会归结为对实例调用toString()

回答

0

我不知道我理解的问题,但我相信有两个环节进行结合和转换问题:

  1. 从UI绑定到Java对象使用Spring data binding API进行处理。这可以处理绑定到标准Java类型和您自己的自定义类型(如果您编写适当的PropertyEditors)。
  2. 将Java对象绑定到JDBC取决于底层的实现。如果您使用的是Spring Simple JDBC,那么您将编写ParameterizedRowMappers以将数据从ResultSets和您的对象中取出。如果你使用Hibernate,你将拥有ORM映射文件。 iBatis有自己的方式来管理它。

我不明白什么“大多数情况下归结为调用toString()实例反正”的意思。

+0

基本上我想要一个绑定变量的转换策略,而不是结果集。 'JdbcTemplate'绑定变量通常以'Object'可变参数的形式提供。这些变量必须是所支持的JDBC类型集的一部分。我想要的是某种可插入的转换策略,它将我的自定义绑定变量(例如类“Foo”的实例)转换为JDBC类型(例如'java.sql.Types.VARCHAR') – yawn 2010-01-13 11:49:57