java将字符串转换为Blob
我对JDBC和堆栈溢出也是新手,我在这里尝试做的是:
我试图将字符串作为blob插入数据库,但遇到空指针异常。以下是我正在使用的代码:
public String execute() {
String success="Success";
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://panorama-pc:3306/sample", "sample", "sample123");
String sql = "Insert into users values(?,?,?,?,?)";
PreparedStatement ps = con.prepareStatement(sql);
ps.setNull(1, Types.NULL);
ps.setString(2,name);
ps.setString(3,RollNo);
ps.setString(4, date);
Blob blob = con.createBlob();
blob.setBytes(1,desc.getBytes()); // getting exception here
int i = ps.executeUpdate();
if(i>0){
return SUCCESS;
}
else{
return ERROR;
}
}
catch(SQLException | ClassNotFoundException e){
e.printStackTrace();
}
这里desc是一个字符串,我试图将它插入blob列。有人能帮我吗
# 1 楼答案
一些可能的问题:
ps.setBlob(...)
String.getBytes
的调用没有指定Charset
;我强烈建议你这样做对于
NullPointerException
。。。你没有说过异常发生的地方,但是如果{{CD5}}是^ {< CD6> },这将解释它-考虑你希望你的BLB在那个情况下包含什么(或者你是否应该将参数设置为NULL)。p>