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();
}
}
} 展开
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();
}
}
} 展开
1个回答
展开全部
你的程序没有问题的,但很不标准优化。
1、创建类时,类型名首字母大写;
2、数据库连接Connection以及PreparedStatement等对象,用完后要关闭。
另外还要提醒你的是,在mysql里面不要用blob存大文件,用longblob类型。blob实际上存的信息比较少的:
TinyBlob 最大 255
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G
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,创建表的时候,你的字段不能用关键字的啊啊啊啊。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询