Oracle数据库插入图片和读取图片

package com.basicSql.scroll_page;

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.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.basicSql.connUtil.Conndb;

public class SavePic {
	public static Connection conn = null;
	public static PreparedStatement pStmt = null;

	/**
	 * 数据库中加入图片等文件
	 */
	public static void InsertPic() {
		String sql = "insert into teacher(id,name,photo) values(teacher_seq.nextval,?,?)";
		try {
			conn = Conndb.connOracle();
			pStmt = conn.prepareStatement(sql);

			pStmt.setString(1, "signma");

			// 数据库插入图片/word/excel等
			File f = new File("src/pic.jpg");
			FileInputStream fis = new FileInputStream(f);
			pStmt.setBinaryStream(2, fis, (int) f.length());

			int n = pStmt.executeUpdate();
			System.out.println(n + "条记录插入");
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} finally {
			Conndb.pStmtClose(pStmt);
			Conndb.closeConn(conn);
		}
	}

	/**
	 * 从数据库中取出图片等文件
	 */
	public static void getPic() {
		String sql = "select id,name,photo from teacher where id=?";
		try {
			conn = Conndb.connOracle();
			pStmt = conn.prepareStatement(sql);

			pStmt.setInt(1, 2);

			ResultSet rs = pStmt.executeQuery();
			if (rs.next()) {
				FileOutputStream fos = new FileOutputStream(new File("abc.jpg"));
				InputStream is = rs.getBinaryStream("photo");

				byte[] buffer = new byte[4 * 1024];
				int length = 0;
				while ((length = is.read(buffer)) != -1) {
					fos.write(buffer, 0, length);
				}
				fos.flush();
				fos.close();
				is.close();
			}

		} catch (SQLException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			Conndb.pStmtClose(pStmt);
			Conndb.closeConn(conn);
		}
	}
}

  

Oracle数据库插入图片和读取图片

时间: 2024-08-14 20:07:56

Oracle数据库插入图片和读取图片的相关文章

向Oracle数据库插入一条数据

这几天搞了一下Oracle数据库,可能用sql server习惯了,感觉好不方便.PL的界面友好度比sql server差远了 ,既然都收购了PL了 为什么不给它做好一点呢?各种不便.郁闷 向Oracle服务器插入一条数据 --不管什么格式通通用''引号引起来.不过INTEGER格式的还是别用引号 insert into T_SITE VALUES( 8, --注意主键别与表里的其他主键冲突了,唯一的 'Cms', 'Cms 网站', 'Cms', 2 , 'CMS', '广告内容管理系统' ,

数据库存储图片和读取图片

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Data.SqlClient; namespace WindowsFormsApplication2 { pu

160304、mysql数据库插入速度和读取速度的调整记录

需求:由于项目变态,需要在一个比较短时间段急剧增加数据库记录(两三天内,由于0增加至5亿).在整个过程调优过程非常艰辛 思路: (1)提高数据库插入性能中心思想:尽量将数据一次性写入到Data File和减少数据库的checkpoint 操作.这次修改了下面四个配置项: 1)将 innodb_flush_log_at_trx_commit 配置设定为0:按过往经验设定为0,插入速度会有很大提高. 0: Write the log buffer to the log file and flush

Oracle数据库插入数据出错:ORA-06550

wpf应用调用oracle的存储过程,出错“ORA-06550:参数个数或参数类型出错”,如下图: 反复检查,存储过程的参数个数和参数类型都没错,觉得非常蹊跷.最后终于解决, 原因是当参数的值为null时要传入DBNull.Value,如下图: 总结: 如果是sql server数据库,字段是可空的字段,当传入参数是null,这样传值是可以成功插入到数据库的. 但是oracle数据库,传入参数是null,则需传入DBNull.Value,如下图:

SDWebImage缓存图片和读取图片

NSString *urlStr: NSUrl *url = [NSURL URLWithString:urlStr]; //缓存图片 SDWebImageManager *manager = [SDWebImageManager sharedManager]; if (![manager diskImageExistsForURL:url]) { [manager downloadWithURL:url options:0 progress:^(NSInteger receivedSize,

Oracle数据库插入二进制字段数据

oracle数据库喜欢搞特殊,二进制字段数据不能直接插入,需先再该字段插入oracle函数返回的的初始数据,然后在查询更新该字段.下面以Blob字段类型为例: 1.插入初始数据 Class.forName("oracle.jdbc.driver.OracleDriver");      Connection cn= DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.5:1521:orcl", "

oracle 数据库插入中文乱码

一. 查询数据库编码 select userenv('language') from dual; 查询服务器编码 select * from v$nls_parameters; 推出sql查询系统编码 [email protected]:/# locale LANG= LANGUAGE= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX"

C#实现Oracle数据库插入clob字段类型数据

public static void InsertWithLob(OracleConnection conn)        {            if (conn!= null && conn.State == ConnectionState.Open)            {                try                {                    string sqlText = "insert into tb_nclob(id,n

tk Mapper Oracle数据库插入时返回主键

主键生成策略 @Id @GeneratedValue(strategy = GenerationType.IDENTITY, generator="SELECT F_DEMO_SEQ.NEXTVAL FROM DUAL") private Long id; MapperScannerConfigurer <bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer"> <property