代码之家  ›  专栏  ›  技术社区  ›  MBJH

准备好的报表。executeUpdate()不影响数据库

  •  -2
  • MBJH  · 技术社区  · 7 年前

    我想在数据库表中插入值。该表有两列: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();
    }
    

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

    通用域名格式。mysql。jdbc。MysqlDataTruncation:数据截断:数据太长 第1行的“image”列

    1 回复  |  直到 7 年前
        1
  •  0
  •   MBJH    6 年前

    我把它修好了。我更改了 image 列来自 blob longblob 谢谢