java如何向mysql写入blob数据?
表结构如下
package entity;
import java.io.Serializable;
public class Person implements Serializable{
private int id;
private String name;
private String sex;
private int age;
private Person soulMate;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person getSoulMate() {
return soulMate;
}
public void setSoulMate(Person soulMate) {
this.soulMate = soulMate;
}
@Override
public String toString() {
return "Person[" + "id=" + id + " ,name=" + name + " ,sex=" + sex + " ,age=" + age + "]";
}
}
上面的是实现了序列化的一个对象,我要将其写入到数据库中去。
具体的操作代码如下:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import entity.Person;
import util.DBUtil;
public class Main {
public static void main(String[] args) {
Person boy = new Person();
boy.setId(10);
boy.setName("litten");
boy.setAge(22);
boy.setSex("男");
Person girl = new Person();
girl.setId(11);
girl.setName("litten's soul mate");
girl.setAge(21);
girl.setSex("女");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos;
try {
oos = new ObjectOutputStream(baos);
oos.writeObject(boy);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
Connection conn = DBUtil.getConn();
PreparedStatement ps = conn.prepareStatement("insert into testBlob (id, blob) values(?,?)");
ps.setInt(1, 2);
ps.setBlob(2, bais, bais.available());
System.out.println(ps.executeUpdate());
} catch (IOException | ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
但是却报错了? 不知道是为什么?求教。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论