Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在PrepareStatement中设置参数是否有任何通用的替代方案_Java_Sql_Performance_Generics_H2 - Fatal编程技术网

Java 在PrepareStatement中设置参数是否有任何通用的替代方案

Java 在PrepareStatement中设置参数是否有任何通用的替代方案,java,sql,performance,generics,h2,Java,Sql,Performance,Generics,H2,我正在开发一个数据库应用程序。目前我正在使用java.sql结合H2嵌入式数据库。我想发展道路。 因此,我设置了一个可重用的数据库行类和数据库属性类,如下所示: 公共类数据库属性{ 私有字符串PropertyName; 私人T值; 私有布尔标识符 public DatabaseProperty(String PropertyName, T Value, boolean identifier) { this.PropertyName = PropertyName; this.Val

我正在开发一个数据库应用程序。目前我正在使用java.sql结合H2嵌入式数据库。我想发展道路。
因此,我设置了一个可重用的数据库行类和数据库属性类,如下所示: 公共类数据库属性{ 私有字符串PropertyName; 私人T值; 私有布尔标识符

public DatabaseProperty(String PropertyName, T Value, boolean identifier) {
    this.PropertyName = PropertyName;
    this.Value = Value;
    this.Identifier = identifier;
}

public String getPropertyName() {
    return PropertyName;
}
public T getValue() {
    return Value;
}
public void setValue(T Value) {
    this.Value = Value;
}
public boolean isIdentifier() {
    return Identifier;
}

}
而且。。。 公共类数据库行{ 保护连接DBConnection; 受保护的字符串表名; 受保护的HashSet=新HashSet()

代码还在继续…
问题是我没有基于泛型的方法来设置PeparedStatement类中的参数,而是有setString(int index,String s)等。。 请帮助我克服这一困难。。 是否有任何面向对象的包装器可用,如PHP?使用这些选项在性能和编码易用性之间是否有任何权衡?

尝试使用以下方法:

ps.setObject(index, object);
它应该适用于索引不为空的所有情况。我认为这对您的情况来说不是问题。 如果对象为null,则需要设置类型

ps.setObject(index, null, type);
可以从参数元数据对象获取的类型:

ParameterMetaData meta=ps.getParameterMetaData();
int type = meta.getParameterType(index);

谢谢@jarrodd roberson纠正我的错误。
ParameterMetaData meta=ps.getParameterMetaData();
int type = meta.getParameterType(index);