PreparedStatement.executeUpdate()不影响数据库

时间:2018-01-05 20:15:51

标签: java mysql jdbc insert prepared-statement

我想将值插入数据库表中。该表有两列:id和image。 id是自动增量int,图像是blob类型。这是我的代码:

try {
    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection(url, userName, password);
    File imgfile = new File(request.getParameter("img"));
    InputStream fin = new FileInputStream(imgfile);
    PreparedStatement pre = con.prepareStatement("insert into pictures (image) values(?)");
    pre.setBinaryStream(1, fin, imgfile.length());
    int done=pre.executeUpdate();
} catch(SQLException | ClassNotFoundException e) {
    e.printStackTrace();
}

我检查数据库,没有插入任何内容。服务器输出:

  

com.mysql.jdbc.MysqlDataTruncation:数据截断:数据太长了   栏'图像'在第1行

1 个答案:

答案 0 :(得分:0)

我修好了。我将this.setState({ salary: Object.assign({}, this.state.salary, {min: newMinValue}) }); 列的数据类型从image更改为blob谢谢。