这是ProductServices.xml
<update id="resetPassword" parameterType="batchReport">
{ call user_account_mng.enc_reset_password(
#{user_Id,jdbcType=VARCHAR,mode=IN},
#{encrypted_password,jdbcType=VARCHAR,mode=IN},
#{usr_id, dbcType=VARCHAR,mode=IN},
#{salt,jdbcType=VARCHAR,mode=IN},
#{ret_code,jdbcType=CHAR,mode=OUT},
#{pgp_encrypted_password,jdbcType=BLOB,mode=IN}
)}
现在BatchReport
是一个POJO:
(我已经将它的别名声明为batchReport)
public class BatchReport
{
private String user_Id;
private String encrypted_password;
private String usr_id;
private String salt;
private String ret_code;
private byte[] pgp_encrypted_password;
public String getUser_Id() {
return user_Id;
}
public void setUser_Id(String user_Id) {
this.user_Id = user_Id;
}
public String getEncrypted_password() {
return encrypted_password;
}
public void setEncrypted_password(String encrypted_password) {
this.encrypted_password = encrypted_password;
}
public String getUsr_id() {
return usr_id;
}
public void setUsr_id(String usr_id) {
this.usr_id = usr_id;
}
public String getSalt() {
return salt;
}
public void setSalt(String salt) {
this.salt = salt;
}
public String getRet_code() {
return ret_code;
}
public void setRet_code(String ret_code) {
this.ret_code = ret_code;
}
public byte[] getPgp_encrypted_password() {
return pgp_encrypted_password;
}
public void setPgp_encrypted_password(byte[] pgp_encrypted_password) {
this.pgp_encrypted_password = pgp_encrypted_password;
}
}
我的主要课程是这样的:
<BatchReport batchReport = new BatchReport();
byte[] byteArray =new byte[]{1,2,3};
batchReport.setUser_Id("CHI");
batchReport.setEncrypted_password("97D6B45");
batchReport.setSalt("71L");
batchReport.setPgp_encrypted_password(byteArray);
String returnCode = productServiceObj.resetPassword(batchReport);
我收到以下错误: 设置空参数时出错。大多数JDBC驱动程序都要求必须为所有可为空的参数指定JdbcType。原因:java.sql.SQLException:列类型无效
ProductServices是一个声明方法resetPassword的类。 请帮我解决这个BLOB问题。 调用过程中的jdbcType应该是什么。 应该在这个pgp_encrypted_password中传递什么值。
答案 0 :(得分:0)
好的,我现在找到问题的解决方案.xml文件中查询中的jdbcType保持不变,即BLOB。 接下来,为传入值而设置的类型是byte []。
所以一切都和我掩盖的一样。 实际上存在错误,因为.xml文件返回一个整数,表示查询中更改的行数,并且我已将函数返回类型赋予String,因此这里的问题解决方案应该是Object类型。