日期:2014-05-16  浏览次数:20763 次

往mysql中插入图片报错
我往mysql中的blob字段插入图片,报错:
Java code

try{ 
            Class.forName("com.mysql.jdbc.Driver");//驱动的名称 
            Connection c=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/image?user=root&password=liuys"); 
            //访问的数据库的帐号密码 
            Statement s=c.createStatement(); 
            File f = new File("F:/photo/zhangting/0.jpg" ); 
                  try{ 
                         PreparedStatement pstm = c.prepareStatement("insert into image(name,img) values (?,?)"); 
                         InputStream is = new FileInputStream(f); 
                         pstm.setString(1, "m1"); 
                         pstm.setBinaryStream(2, is, is.available()); 
                         int count = pstm.executeUpdate(); 
                         if(count>0){ 
                             System.out.println("插入成功"); 
                         }else{ 
                             System.out.println("插入失败"); 
                         } 
                         is.close(); 
                         pstm.close(); 
                         c.close(); 
                         
                     } catch (Exception e){ 
                         e.printStackTrace(); 
                     } 
                     s.close();  
                     }catch(Exception e){ 
                    e.printStackTrace();}//捕获异常 
            } 


报如下的错误: Data too long for column 'img' at row 1
请高手指点,本人接触数据库的知识不是太多,谢了。

------解决方案--------------------
图片太大
------解决方案--------------------
blob才64K,你的图片肯定超64K了
------解决方案--------------------
直接插入图片到数据库,太疯狂了
------解决方案--------------------
探讨

经过楼上给我意见,果然是图片太大了,我换成小的文件就可以了,还是我的图片太大的原因,blob字段也是有大小限制的。

------解决方案--------------------
图片还是不要放在数据库里面,数据库里放上路径就行了,要不你的数据库以后比较大哦