建立一个数据库字段存放转成二进制的图片,这个字段有一个要求就是要设置成blob类型的

CREATE TABLE `save_image` (
  `id` int(50) NOT NULL AUTO_INCREMENT,
  `images` blob,
  PRIMARY KEY (`id`)

三、转换文件成为二进制数据并保存的Java代码:

	public  void save() throws SQLException
		connection=connectionManager.getconn();//连接数据库的操作,这里自己连接自己的数据库
		try {
			File file=new File("D:\\1.jpg");//要转换的文件
			FileInputStream inputStream=new FileInputStream(file);
			String sql="insert into save_image(images) values(?)";//存入数据库的SQL语句在执行的时候一定要用prepareStatement
			statement=connection.prepareStatement(sql);
			statement.setBinaryStream(1, inputStream,(int)file.length());
			statement.executeUpdate();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
	}
四、取出数据并还原文件到本地的java代码:
	//读取数据库二进制文件
	public void readerJpg() throws SQLException
		connection=connectionManager.getconn();//自己连接自己的数据库!!!!!!!!
		String sqlString="select images from save_image where id=4";//从数据库中读出要还原文件的二进制码,这里我读的是自己的数据库id为4的文件
		File file=new File("E:\\1.jpg");//本地生成的文件
		if(!file.exists())
			try {
				file.createNewFile();
			} catch (Exception e) {
				e.printStackTrace();
		try {
			byte[] Buffer = new byte[4096*5];
			statement=connection.prepareStatement(sqlString);
			resultSet = statement.executeQuery();
			if(resultSet.next())
				FileOutputStream outputStream = new FileOutputStream(file);
				InputStream iStream = resultSet.getBinaryStream("images");//去字段用getBinaryStream()
				int size=0;
				while((size=iStream.read(Buffer))!=-1)
					System.out.println(size);
					outputStream.write(Buffer,0,size);
		} catch (Exception e) {
			e.printStackTrace();
                    一、功能描述:将文件转成二进制数据放入数据库中,需要的时候,便可以取出安装与使用。二、数据库:建立一个数据库字段存放转成二进制的图片,这个字段有一个要求就是要设置成blob类型的CREATE TABLE `save_image` (  `id` int(50) NOT NULL AUTO_INCREMENT,  `images` blob,  PRIMARY KEY
				
package cn.itcast.jdbc;import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOEx
工作的时候遇到了处理二进制流数据的问题,我是用Map<String,Object>进行接收, 获取value值后,转成CLOB类型的。通过getSubString方法,读取它的所有数据,这样就直接转换成了String类型的数据。 下面还尝试过了流的形式处理CLOB的数据(ClobToString方法),但是忘记了为啥没选用,似乎是乱码问题。 CLOB类型数据处理 try { const mimeMap = { word: 'application/msword;application/vnd.openxmlformats-officedocument.wordprocessingml.document;', pdf: 'application/pdf', xlsx: 'application
Blob:Binary Long Object二进制长对象 用于存储文件,例如图片/声音文件,使用Blob列可以把图片声音文件二进制数据保存在数据库里,并可以从数据库里恢复指定文件 因此在处理图片/声音文件存储数据库时,需要先将文件处理成二进制形式,将二进制形式存储数据库内 将二进制数据存入到blob类型至数据库中 使用PreparedStatement的方法setBinarySt...
Java中,可以使用ObjectOutputStream将Java对象转换成二进制数据流。例如: ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.data")); oos.writeObject(object); oos.close(); 这段代码将Java对象 "object" 转换成二进制数据流并保存到文件 "object.data" 中。 同样,可以使用ObjectInputStream将二进制数据流转换回Java对象。例如: ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.data")); Object object = ois.readObject(); ois.close(); 这段代码将二进制数据流 "object.data" 转换成Java对象并赋值给变量 "object"。