📄 writeimagedemo.java
字号:
package bigdata;
import java.sql.*;
import java.io.*;
public class WriteImageDemo {
public static void main(String[] args) throws Exception {
File file = null;
FileInputStream fileInputStream = null;
//定义数据库连接的驱动程序
String driver = "org.gjt.mm.mysql.Driver";
//定义MySQL数据库的连接地址
String url = "jdbc:mysql://localhost:3306/EmployeeEBKC10";
//声明byte数组,保储图片
byte[] pictureBytes;
//创建图片文件的名字数组
String[] fileNames = {"./image/picture01.jpg", "./image/picture02.jpg",
"./image/picture03.jpg", "./image/picture04.jpg",
"./image/picture05.jpg"};
//创建图片文件的描述数组
String[] pictureDescriptions = {"图片1", "图片2", "图片3", "图片4", "图片5"};
//声明连接类
Connection conn;
//声明SQL语句执行类
Statement statement;
//声明结果集类
ResultSet resultSet = null;
//注册SQLServer驱动程序
Class.forName(driver);
//第一个参数定义用户名,第二个参数定义密码
conn = DriverManager.getConnection(url, "root", "test");
//创建可以滚动,更新数据的sql语句执行类
statement = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String query = "select * from pictures";
//创建可更新数据的数据集
resultSet = statement.executeQuery(query);
for(int i = 0; i < 5; ++i){
//获取文件名
file = new File(fileNames[i]);
//读入图片文件,当前路径是运行路径
fileInputStream = new FileInputStream(file);
//根据文件大小创建byte数组
pictureBytes = new byte[fileInputStream.available()];
//获取文件读入类的二进制数据
fileInputStream.read(pictureBytes);
//将数据集的游标移到新记录位置
resultSet.moveToInsertRow();
//更新图片序号
resultSet.updateInt(1, (i+1));
//更新图片描述字段
resultSet.updateString(2, pictureDescriptions[i]);
//更新图片字段
resultSet.updateBytes(3, pictureBytes);
//向数据库插入记录
resultSet.insertRow();
System.out.println("记录" + (i + 1) + "的文件长度 = " + pictureBytes.length);
}
System.out.println("成功向pictures数据表写入5条记录");
//关闭结果集
resultSet.close();
//关闭SQL语句执行类
statement.close();
//关闭数据库连接类
conn.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -