JDBC访问大段文本,二进制图片等数据

//插入文本数据
// 1.创建语句
			String sql = "insert into clob_test(big_text) values (?) ";
			ps = conn.prepareStatement(sql);
			File file = new File("src/com/meiyoudao/jdbc/JdbcUtils.java");
			Reader reader = new BufferedReader(new FileReader(file));

			ps.setCharacterStream(1, reader, (int) file.length());
			// ps.setString(1, x);
			// 2.执行语句
			int i = ps.executeUpdate();

			reader.close();

			System.out.println("i=" + i);


//读取文本内容
// 1.执行语句
			rs = st.executeQuery("select big_text  from clob_test");

			// 2.处理结果
			while (rs.next()) {
				Clob clob = rs.getClob(1);
				Reader reader = clob.getCharacterStream();
				// reader = rs.getCharacterStream(1);
				// String s = rs.getString(1);

				File file = new File("JdbUtils_bak.java");
				Writer writer = new BufferedWriter(new FileWriter(file));
				char[] buff = new char[1024];
				for (int i = 0; (i = reader.read(buff)) > 0;) {
					writer.write(buff, 0, i);
				}
				writer.close();
				reader.close();


//录入二进制文件,如图片,jar包,等等
// 1.创建语句
			String sql = "insert into blob_test(big_bit) values (?) ";
			ps = conn.prepareStatement(sql);
			File file = new File("IMG_0002.jpg");
			InputStream in = new BufferedInputStream(new FileInputStream(file));

			ps.setBinaryStream(1, in, (int) file.length());
			// 2.执行语句
			int i = ps.executeUpdate();
			in.close();


//读取二进制文件,如图片,jar包,等等
// 1.执行语句
			rs = st.executeQuery("select big_bit  from blob_test");

			// 2.处理结果
			while (rs.next()) {
				// Blob blob = rs.getBlob(1);
				// InputStream in = blob.getBinaryStream();
				InputStream in = rs.getBinaryStream("big_bit");

				File file = new File("IMG_0002_bak.jpg");
				OutputStream out = new BufferedOutputStream(
						new FileOutputStream(file));
				byte[] buff = new byte[1024];
				for (int i = 0; (i = in.read(buff)) > 0;) {
					out.write(buff, 0, i);
				}
				out.close();
				in.close();

你可能感兴趣的:(java,sql,jdbc)