java image类的值_关于在java中保存image类型的字段的问题
有一個表test,其字段image是image類型的.在java中可以用如下的方法保存:Filefile=newFile("src/down.gif");InputStreaminput=newFileInputStream(file);PreparedStatementps=con.prep...
有一個表test,其字段image是image類型的.在java中可以用如下的方法保存:
File file = new File("src/down.gif");
InputStream input = new FileInputStream(file);
PreparedStatement ps = con.prepareStatement("insert into test (id,image) values (?,?)");
int length = (int)file.length();
ps.setAsciiStream(1, '1');
ps.setAsciiStream(2, input,length);
ps.execute();
con.commit();
但是以上方法不是什么情況下都方便用.在我現(xiàn)在的一個應用中不太方便使用這種方法.我希望使用
Statement stm = con.createStatement();
String sql = "insert into test (id,image) values ('1',image數(shù)據(jù))";
stm.execute(sql);
這樣的方法來實現(xiàn)。但試了很久都不行,希望高手不吝賜教.
反編譯看了,它最后也是放到一個byte數(shù)組里,但最后怎么存的我沒找到。用statement怎么存一個byte數(shù)組啊.
我知道要放到inputStream里,我是在想既然ps.setAsciiStream(2, input,length);
ps.execute();
可以保存,那么inputStream流里面的字節(jié),經(jīng)過一種怎樣的轉(zhuǎn)換后可以象這樣insert into test (id,image) values ('1',image轉(zhuǎn)換后的數(shù)據(jù))保存呢?
因為我的全部是動態(tài)生成的,連哪個數(shù)據(jù)庫,連哪張表,全部是動態(tài)的,而且如果我一次要操作300條數(shù)據(jù)的話,也不一定是全部寫入一個表,可能這一條數(shù)據(jù)寫入A數(shù)據(jù)庫的AA表,下一條就寫進B數(shù)據(jù)庫的BB表,所以sql語句全部是動態(tài)生成的,用PreparedStatement的話相對要麻煩很多,怎個的改動也很大.
最大的不同是同一個數(shù)據(jù)庫不同的表不同的操作我只要一個statement. 但是用preparedstatement我就要每操作一次創(chuàng)建一個preparedstatement
展開
總結(jié)
以上是生活随笔為你收集整理的java image类的值_关于在java中保存image类型的字段的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用cmd命令删除文件夹下所有文件
- 下一篇: windows中请将磁盘插入u盘问题如何