JDBC中处理二进制类型数据是什么样的?
JDBC中处理二进制类型数据是什么样的?
代码如下:package jdbc; import java。io。BufferedInputStream; import java。io。BufferedOutputStream; import java。io。File; import java。
io。FileInputStream; import java。io。FileOutputStream; import java。io。InputStream; import java。io。OutputStream; import java。
sql。Connection; import java。sql。PreparedStatement; import java。sql。ResultSet; /** * * @author HaoWang */ public class BlobTest { public static void main(String[] args) { // create(1,"C:\\a。
jpg"); read(1,"C:\\a_bak。jpg"); } public static void create(int bid, String path) { Connection conn = null; String sql = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JdbcUtils。
getConnection(); sql = "insert into blob_test(bid,content) value(?,?)"; ps = conn。prepareStatement(sql); ps。setInt(1, bid); File file = new File(path); InputStream in = new BufferedInputStream(new FileInputStream(file)); ps。
setBinaryStream(2, in, file。length()); int i = ps。executeUpdate(); System。out。println("i="+i); in。close(); } catch (Exception ex) { System。
out。println(ex。toString()); } finally { JdbcUtils。free(conn, ps, rs); } } public static void read(int bid, String path) { Connection conn = null; String sql = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JdbcUtils。
getConnection(); sql = "select content from blob_test where bid=?"; ps = conn。prepareStatement(sql); ps。setInt(1, bid); rs = ps。
executeQuery(); while(rs。next()) { InputStream in = rs。getBinaryStream(bid); File file = new File(path); 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(); } } catch (Exception ex) { System。out。println(ex。
toString()); } finally { JdbcUtils。free(conn, ps, rs); } } } 编辑特别推荐: java实现缩略图和抓屏幕 Java中的Enum的使用与分析 Eclipse远程调试Java。
答:(B) 16,一个字符是双字节的,2*8=16其它同志是错误的详情>>