1.首先需要在在my.ini中添加如下配置
max_allowed_packet=10485760
2.然后在mysql中便可创建自己的表:
标准SQL中提供了如下类型来保存大数据类型:
但是,在mysql中没有提供tinyclob、clob、mediumclob、longclob四种类型,而是使用如下四种类型来处理文本大数据:
准备图片,然后java中主要代码就是这样,只是通过流的形式读入和写出图片。
package com.lili.daoimpl;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.lili.dao.PictureDao;
import com.lili.jdbcutils.JdbcUtils;
public class PictureDaoImpl implements PictureDao {
@Override
public void addPicture() {
Connection conn = JdbcUtils.getConnection();
String sql = "insert into picture values(null,?,?)";
PreparedStatement ps;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, "1.jpg");
InputStream in = new FileInputStream("D:\\1.jpg");
ps.setBinaryStream(2, in);
int num = ps.executeUpdate();
if (num > 0) {
System.out.println("图片插入成功!");
} else {
System.out.println("图片插入失败!");
}
JdbcUtils.closeAll(conn, ps, null);
} catch (SQLException e1) {
e1.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
@Override
public void selectPicture() {
PreparedStatement ps = null;
ResultSet rs = null;
Connection connection = JdbcUtils.getConnection();
String sql = "select * from picture where id=?";
try {
ps = connection.prepareStatement(sql);
ps.setInt(1, 1);
rs = ps.executeQuery();
while (rs.next()) {
String filename = rs.getString(2);
InputStream in = rs.getBinaryStream(3);
OutputStream out = new FileOutputStream(new File("E:\\" + filename));
int n = 0;
byte[] b = new byte[1024];
while ((n = in.read(b)) != -1) {
out.write(b);
}
}
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
System.out.println("图片查询成功!");
JdbcUtils.closeAll(connection, ps, rs);
}
}
}