2016-02-27 56 views
1

道歉混淆标题。我对Java没有经验,所以缺乏正确的术语。基本上,我试图在Java类型(即Class)和JDBC类型(作为字符串)之间创建一个映射。所以我试图做这样的事情:如何编写不同典型Java类的实例?

private static final Map<Class, String> javaToJdbcTypeMap; 
static 
{ 
    javaToJdbcTypeMap = new HashMap<Class, String>(); 
    javaToJdbcTypeMap.put(String, "varchar"); 
    javaToJdbcTypeMap.put(Integer, "int"); 
    //etc for other common Java types 
} 

但是,字符串和整数给我的问题。 Intellij告诉我“表达预期”。而不是String我试过"".getClass(),它的工作原理,但我觉得这是可怕的风格,应该有一个简单的方法来做到这一点。

回答

2

Mapping of JDBC Types to Java Types应该有所帮助。同时添加的“.class”得到像javaToJdbcTypeMap.put(String.class, "varchar");类并且,由于Java 7中,您可以使用Diamond Operator <>

javaToJdbcTypeMap = new HashMap<>(); 
javaToJdbcTypeMap.put(String.class, "varchar"); 
javaToJdbcTypeMap.put(Integer.class, "int"); 
+0

啊对,这就是我想要的。我知道这是明显的。并感谢您的链接 - 这是我现在使用的参考:) – Drew

+0

@Drew有[其他映射](http://docs.oracle.com/javase/1.5.0/docs/guide/jdbc /getstart/mapping.html),如果找不到现有的映射,则可以实现所需的内容。 –

+0

干杯,实际上我正在使用Amazon Redshift,并且因为他们专注于数据仓库优化,所以他们支持相当[数量有限的数据类型](http://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types。 HTML),所以我应该很好 - 谢谢! – Drew

相关问题