java向mySQL中添加Blob的问题

importjava.io.File;importjava.io.FileInputStream;importjava.io.InputStream;importjava... import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import com.sue.dbutil.DBSource;
import com.sue.dbutil.SimpleDBSource;

public class addImg {
public static void main(String[] args) {

try {
DBSource source = new SimpleDBSource() ;
Connection conn = source.getConnection();
if(conn!=null) {
System.out.println("成功");
}
File file = new File("E:\\javaSue\\project\\QQ\\Img\\1.jpg");
int length = (int)file.length();
InputStream is = new FileInputStream(file);
String sql = "insert into img(name,blob) values(?,?)";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, "1.jpg");
pst.setBinaryStream(2,is,length);
pst.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}

}
}
展开
 我来答
mading314
2012-09-13 · TA获得超过863个赞
知道小有建树答主
回答量:355
采纳率:100%
帮助的人:350万
展开全部
你的程序没有问题的,但很不标准优化。
1、创建类时,类型名首字母大写;
2、数据库连接Connection以及PreparedStatement等对象,用完后要关闭。

另外还要提醒你的是,在mysql里面不要用blob存大文件,用longblob类型。blob实际上存的信息比较少的:
TinyBlob 最大 255
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G
更多追问追答
追问
首先谢谢你的回答,这个类名是我为了测试先写的。

但是就是出现异常:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'blob) values('1.jpg',_binary'???à\0JFIF\0\0H\0H\0\0??\0C\0 ' at line 1
追答
你表的字段名用了关键字~~~blob,创建表的时候,你的字段不能用关键字的啊啊啊啊。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式