我是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列中。有人可以帮帮我吗?
答案 0 :(得分:1)
一些可能的问题:
ps.setBlob(...)
某处String.getBytes
的来电未指定Charset
;我强烈建议你这样做对于NullPointerException
...你还没有说过发生异常的地方,但如果desc
是null
,那就解释了它 - 考虑你想要你的blob包含什么在这种情况下(或者你是否应该将参数设置为null)。