jdbc 检查类型兼容性

Posted

技术标签:

【中文标题】jdbc 检查类型兼容性【英文标题】:Jdbc check type compatiblity 【发布时间】:2011-08-22 21:59:34 【问题描述】:

有什么方法可以预先检查 java 类型是否与 sql.Types 兼容?

我可以输入以下所有内容:

if (BIGINT||TINYINT) try BigInteger.parse(myvalue)if (TIME||DATE||TIMESTAMP) try new Date(Long.parse(myvalue))

这会产生大量代码。他们是某种通用的预检查方式吗?

编辑:我说的是插入,所以我想做一些预检查,以避免插入时出现 sql 异常

【问题讨论】:

为什么不使用ResultSet#getObject() 和/或PreparedStatement#setObject()?或者,更好的是,像 Hibernate、JPA 之类的 ORM? 【参考方案1】:

如果您使用 JDBC,只需使用 ResultSet.getObject()。它将返回合适的类型(让 JDBC 驱动程序完成繁重的工作)。

当您知道您对列的期望时,仅使用类型化的 getter,例如 getInt()。

【讨论】:

我说的是插入,所以我想做一些预检查,以避免插入时出现sql异常【参考方案2】:

也许我不明白你的问题。你的意思是instanceof

ie. if (myObject instanceof java.sql.Types) 
        ...
    

【讨论】:

以上是关于jdbc 检查类型兼容性的主要内容,如果未能解决你的问题,请参考以下文章

电脑装机兼容性检查

EF 4 Code First:无法检查模型兼容性,因为EdmMetadata类型未包含在模型中

kotlin检查类型不兼容的类型

如何以与静态类型检查兼容的方式实现接口?

可变修改类型兼容性及其安全隐患

BIRT 431:Java/JDBC 的 Oracle 兼容性问题