dbutils中的类型匹配问题

joliny 发布于 2010/08/30 09:10
阅读 402
收藏 0

我用的是postgresql数据库,在dbutils中怎么对应数据库中的character类型,我给了Character、char,String 都不对。奇怪了。

加载中
0
红薯
红薯

如果在mysql中,char(1) 也是用 string 来对应

不知道你无法映射,是出现什么异常了?

0
joliny
joliny

Caused by: java.lang.IllegalArgumentException: Can't change resolved type for param: 8 from 1043 to 1042
 at org.postgresql.core.v3.SimpleParameterList.setResolvedType(SimpleParameterList.java:230)
 at org.postgresql.core.v3.QueryExecutorImpl.sendOneQuery(QueryExecutorImpl.java:1488)
 at org.postgresql.core.v3.QueryExecutorImpl.sendQuery(QueryExecutorImpl.java:1062)
 at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
 at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
 at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:367)
 at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:321)
 at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
 at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:611)
 at com.spirit.spark.helper.QueryHelper.update(QueryHelper.java:317)
 at com.spirit.spark.models.Users.addUser(Users.java:37)
 at com.spirit.spark.controllers.SignupController.submit(SignupController.java:60)
 ... 27 more

0
joliny
joliny

现在我的做法是吧Character全部用Character  varying 代替,然后对应字符串就可以了。不过方法很不满意!

0
红薯
红薯

这已经跟dbutils无关了,异常是由 postgresql 的 jdbc 驱动跑出来的

你如果用jdbc编写的话,是调用什么方法来填充这个 Character 字段的呢?

0
joliny
joliny

一般都是用字符串来填充的。

0
红薯
红薯

引用来自#6楼“joliny”的帖子

一般都是用字符串来填充的。

只要jdbc ok 的话,dbutils 就没问题啊

0
joliny
joliny

是啊,所以我才觉得奇怪!这次我升级到了8.4.4-1,使用了最新的驱动,可能是jdbc驱动的问题吧!

0
joliny
joliny

确实是驱动的问题。现在在官网下载的还是8.4.4-1的驱动,这个有问题,去jdbc网站上已经有了8.4.4-2用这个就没有问题了!!

返回顶部
顶部