]]>JDBC涓搷浣淏lob銆丆lob絳夊璞?/title>http://m.tkk7.com/wangbbs2007/articles/292503.html涔恓ava涔?/dc:creator>涔恓ava涔?/author>Tue, 25 Aug 2009 05:06:00 GMThttp://m.tkk7.com/wangbbs2007/articles/292503.htmlhttp://m.tkk7.com/wangbbs2007/comments/292503.htmlhttp://m.tkk7.com/wangbbs2007/articles/292503.html#Feedback0http://m.tkk7.com/wangbbs2007/comments/commentRss/292503.htmlhttp://m.tkk7.com/wangbbs2007/services/trackbacks/292503.htmlpackage eg;
import java.io.*;
import java.sql.*;
public class BlobClobExample {
public static void main(String[] args) {
Connection conn = null;
try {
conn = JDBCUtils.getConnection(); // 寤虹珛榪炴帴
Statement s = conn.createStatement(); // 鍒涘緩Statement瀵硅薄
s.executeUpdate("drop table documents");
// 榪欏彞鏄負浜嗛伩鍏嶅啀嬈″垱寤鴻〃documents
s
.executeUpdate("CREATE TABLE documents(id INT, text CLOB(64 K) , photo Blob(1440 K))");
// 浠ヤ笂灝辨槸鍒涘緩鍖呭惈Clob鍜孊lob瀵硅薄鐨勮〃鐨勮繃紼?nbsp;
// 鍜屽皢涓鑸殑瀛楁宸笉澶氾紝鍚庨潰鎷彿涓唬琛ㄨ瀵硅薄鐨勫ぇ灝忥紝鍏惰娉曚負錛?nbsp;
// CLOB (length [{{K |M |G}]) 琛ㄧず闀垮害涓篕銆丮銆丟絳夛紝娌℃湁甯﹁〃紺烘瘮鐗?nbsp;
conn.commit(); // 鎻愪氦鎿嶄綔
// 浠ヤ笅鏄皢鏈湴鏂囦歡涓紝鏈▼搴忕殑婧愭枃浠跺姞杞戒負涓涓祦錛岀敤浜庡悜鏁版嵁搴撲腑鍐欏叆Clob瀛楁
File file1 = new File("BlobClobExample.java");
int len1 = (int) file1.length();
InputStream fis1 = new java.io.FileInputStream(file1);
// 浠ヤ笅鏄皢褰撳墠婧愪唬鐮佺洰褰曠殑瀛愮洰褰?#8220;11”涓嬬殑“1.JPG”鏂囦歡鍔犺澆涓轟竴涓祦錛?nbsp;
// 鐢ㄤ簬鍚庨潰鍚戞暟鎹簱涓啓鍏lob瀛楁
File file2 = new File("c:\\11\\1.JPG");
int len2 = (int) file2.length();
InputStream fis2 = new FileInputStream(file2);
// 浠ヤ笂涓や釜綆鍗曞惂錛侊紒
// 鍒涘緩涓涓狿reparedStatement瀵硅薄錛岀敤浜庢壒閲忔彃鍏ュ唴瀹?nbsp;
// 浣跨敤PreparedStatement瀵硅薄鍙互鑺傜渷錛屾暟鎹簱緙栬瘧SQL鎸囦護鐨勬椂闂達紝
// 鍥犱負鍦ㄤ嬌鐢≒reparedStatement瀵硅薄鏃訛紝璇QL璇彞鏄鍏堢紪璇戝ソ浜嗭紝
// 瀵逛簬鏌愪簺鍙樺寲鐨勫弬鏁頒嬌鐢ㄥ崰浣嶇錛圥lace Holder錛変唬鏇?nbsp;
// 榪欏浜庝互鍚庡皢瑕佹墽琛屽嬈$殑鍚屼竴鎿嶄綔錛岃鎿嶄綔浠呬粎鏄弬鏁頒笉鍚岋紝鏄瀬鍏舵湁鍒?nbsp;
// 姣斿鍦ㄧ綉欏典笂杈撳叆瀹㈡埛淇℃伅鏃訛紝鐢ㄦ埛瑕佸~鍏ョ殑鏁版嵁鍩烘湰鏄竴鏍風殑錛堜綘鍙互濉篃鍙互涓嶅~錛?nbsp;
// 榪欐椂鍚庡彴鐨勬暟鎹簱鍙互浣跨敤PreparedStatement瀵硅薄錛屾瘡嬈¢兘鏄緗弬鏁幫紝鎵ц鎿嶄綔
PreparedStatement ps = conn
.prepareStatement("INSERT INTO documents VALUES (?, ?,?)");
ps.setInt(1, 250);
ps.setAsciiStream(2, fis1, len1);
ps.setBinaryStream(3, fis2, len2);
// 浠ヤ笂涓夋鏄緗崰浣嶇鐨勬暟鍊?nbsp;
ps.execute(); // 鎵ц鎿嶄綔
// 浠ヤ笂鍥涙鍙互閲嶅鎵ц銆侾reparedStatement灝辨槸涓轟簡閫傜敤浜庢鐢ㄩ?nbsp;
conn.commit();
// 浠ヤ笂瀹屾垚浜嗘暟鎹殑鍐欏叆
// 浠ヤ笅鏄暟鎹殑璇誨嚭
ResultSet rs = s
.executeQuery("SELECT text , photo FROM documents WHERE id = 250");
while (rs.next()) {
Clob aclob = rs.getClob(1); // 鍜屾彁鍙栦竴鑸璞′竴鏍?nbsp;
InputStream is = rs.getAsciiStream(1); // 鐗規畩鐨勶紝瀵逛簬涓庡緱鍒癈lob鐨勬祦
// 榪欐槸寰楀埌Clob銆丅lob嫻佺殑絎竴縐嶆柟娉?nbsp;
// 浠ヤ笅鏄嫻佽繘琛屽鐞嗙殑榪囩▼銆侰lob鏈韓鏄寘鍚ぇ瀛楃鐨勫璞?nbsp;
// 欏哄叾鑷劧錛屼互涓嬫槸浣跨敤java IO涓鍙栧瓧絎︽祦鐨勬柟娉曡鍙栧畠
BufferedReader br = new BufferedReader(
new InputStreamReader(is));
String line = null;
while (null != (line = br.readLine())) {
System.out.println(line); // 灝嗗叾杈撳嚭鑷沖睆騫曪紝瀹為檯浣犲彲浠ユ寜鐓ч渶瑕佸鐞?nbsp;
}
is.close();
java.sql.Blob ablob = rs.getBlob(2); // 鍜屾搷浣滃叾瀹冨熀鏈被鍨嬬殑瀛楁涓鏍?nbsp;
System.out.println(ablob.length()); // 綆鍗曞湴鎿嶄綔Blob鐨勫疄渚?nbsp;
// 瀹為檯浣犲彲浠ヤ嬌鐢–lob鐨凙PI瀵瑰叾榪涜浠諱綍瀹冨厑璁哥殑鎿嶄綔錛岃鏌PI
InputStream bis = ablob.getBinaryStream(); // 寰楀埌Blob瀹炰緥鐨勫瓧鑺傛祦
// 榪欐槸鎿嶄綔Clob銆丅lob絳夊璞$殑絎簩縐嶆柟娉曪紝涔熸槸鏈鑷劧鐨勭敤娉?nbsp;
OutputStream os = new FileOutputStream("11.jpg");
// 鐢ㄤ簬灝嗘暟鎹簱涓殑Blob瀛樻斁鍒扮洰鍓嶇洰褰曠殑“11.jpg”鏂囦歡涓?nbsp;
int b = bis.read(); // 浠ヤ笅灝辨槸璞℃搷浣滃叾瀹僯ava瀛楄妭嫻佷竴鏍鋒搷浣滀簡
while (b != -1) {
os.write((char) b);
b = bis.read();
}
os.flush();
os.close();
bis.close();
}
]]>Data truncation: Data too long for column 'name' at row 1http://m.tkk7.com/wangbbs2007/articles/291357.html涔恓ava涔?/dc:creator>涔恓ava涔?/author>Sun, 16 Aug 2009 08:33:00 GMThttp://m.tkk7.com/wangbbs2007/articles/291357.htmlhttp://m.tkk7.com/wangbbs2007/comments/291357.htmlhttp://m.tkk7.com/wangbbs2007/articles/291357.html#Feedback0http://m.tkk7.com/wangbbs2007/comments/commentRss/291357.htmlhttp://m.tkk7.com/wangbbs2007/services/trackbacks/291357.html