问题描述
mysql中图片存储的字段设置为mediumblob类型上传到数据库的代码为Stringfilename=su.getFiles().getFile(0).getFilePathName();Connectioncon=null;Class.forName("com.mysql.jdbc.Driver");con=DriverManager.getConnection("jdbc:mysql://localhost/myku?useUnicode=true&characterEncoding=GBK","root","jurist");FileInputStreambookImageFile=newFileInputStream(filename);Stringsql="insertintobook(bookname,bookImage,author,publisher)values(?,?,?,?)";PreparedStatementpstmt=con.prepareStatement(sql);pstmt.setString(1,su.getRequest().getParameter("bookname"));System.out.println(su.getRequest().getParameter("bookname"));pstmt.setBinaryStream(2,bookImageFile,bookImageFile.available());pstmt.setString(3,su.getRequest().getParameter("author"));pstmt.setString(4,su.getRequest().getParameter("publisher"));System.out.println(su.getRequest().getParameter("publisher"));pstmt.executeUpdate();一运行左后一句。就会出现YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'c???§mN?????/???_÷???G?…?ü÷??ü??èú??1}z?g?|??????5ù??ù??????=??'atline1我真的不知道那里出错了
解决方案
解决方案二
建议楼主还是不要往数据库存储图片吧~~很容易出问题,而且数据库读取会非常慢一般都是存图片的路径的
解决方案三
恩而且图片多了很占数据空间还不如记录路径。
解决方案四
引用1楼iunbeknown的回复:
建议楼主还是不要往数据库存储图片吧~~很容易出问题,而且数据库读取会非常慢一般都是存图片的路径的
可是存储路径不是只能存储绝对路径吗绝对路径在其他机子上读不出来图片啊比如我的图片存储在D:javaworkplacetestimages我把这个路径存储在数据库之后在本机上能读出来在其他人的机子上通过网络就不能读出来why
解决方案五
引用3楼jurist123的回复:
引用1楼iunbeknown的回复:建议楼主还是不要往数据库存储图片吧~~很容易出问题,而且数据库读取会非常慢一般都是存图片的路径的可是存储路径不是只能存储绝对路径吗绝对路径在其他机子上读不出来图片啊比如我的图片存储在D:javaworkplacetestimages我把这个路径存储在数据库之后在本机上能读出来在其他人的机子上通过网络就不能……
存储想对路径..相对与你的项目的路径就行了..
解决方案六
LZ不要往数据库存储图片数据库只存放图片的路径和名称图片放在服务器的一个目录下读取时可以根据数据库路径去读取即可。
解决方案七
引用3楼jurist123的回复:
引用1楼iunbeknown的回复:建议楼主还是不要往数据库存储图片吧~~很容易出问题,而且数据库读取会非常慢一般都是存图片的路径的可是存储路径不是只能存储绝对路径吗绝对路径在其他机子上读不出来图片啊比如我的图片存储在D:javaworkplacetestimages我把这个路径存储在数据库之后在本机上能读出来在其他人的机子上通过网络就不能读……
存储web路径。得让人能找到他啊。
解决方案八
引用6楼dr_lou的回复:
引用3楼jurist123的回复:引用1楼iunbeknown的回复:建议楼主还是不要往数据库存储图片吧~~很容易出问题,而且数据库读取会非常慢一般都是存图片的路径的可是存储路径不是只能存储绝对路径吗绝对路径在其他机子上读不出来图片啊比如我的图片存储在D:javaworkplacetestimages我把这个路径存储在数据库之后在本……
图片单独一台服务器。