บทความนี้จะอธิบายวิธีการเขียนโปรแกรม JDBC ในการจัดเก็บไฟล์และรูปภาพผ่านตัวอย่าง แชร์ให้ทุกท่านได้ใช้อ้างอิง โดยมีรายละเอียดดังนี้
/*ใช้งานฟังก์ชั่น: ใช้ฐานข้อมูลเพื่อจัดเก็บข้อมูลข้อความ และอ่านและใส่ไว้ในโครงการปัจจุบันเพื่อการวิเคราะห์: มันไม่ได้ยากมาก สิ่งสำคัญคือต้องเชี่ยวชาญการไหลของไฟล์ แต่มีการอ่านและเขียนการไหลของไฟล์มากขึ้น วันที่: 20131003 ผู้แต่ง: Yan Dayangzi*/public class Ckb_test { public static void main(String[] args) ส่ง SQLException, IOException { // TODO Auto-generated method stub read (); } เป็นโมฆะคงที่ create() พ่น SQLException, IOException { Connection conn=null; PreparationStatement prest=null; ResultSet=null; ลอง { //2. สร้างการเชื่อมต่อ conn=JdbcUtils.getConnection(); getInstance ().getConnection(); //3. สร้างคำสั่ง String sql="insert into ckb_test(text) ค่า(?)"; prest=conn.prepareStatement(sql); File file=new File("src/cn/com/JDBC/JdbcUtils.java"); Reader reader=new BufferedReader(new FileReader(file) )); prest.setCharacterStream(1, reader, (int)file.length()); //4. ดำเนินการคำสั่ง int i=prest.executeUpdate(); reader.close(); System.out.println("i="+i); } ในที่สุด { JdbcUtils.free(resultset, prest, conn); } } static void read() SQLException, IOException { การเชื่อมต่อ conn=null; คำสั่ง st=null; ResultSet resultset=null; //2. สร้างการเชื่อมต่อ conn=JdbcUtils.getConnection(); //โหมดการออกแบบตัวพิมพ์เดียว conn=JdbcUtilsSingle.getInstance().getConnection(); //3. 4. ดำเนินการคำสั่ง resultset=st.executeQuery("select text from ckb_test"); //5. ประมวลผลผลลัพธ์ในขณะที่ (resultset.next()) { Clob=resultset.getClob(1); Reader reader=clob.getCharacterStream(); //reader=resultset.getCharacterStream(1); ไฟล์ ("JdbcUtils.java"); Writer Writer=new BufferedWriter(new FileWriter(file)); char[] buff=new ถ่าน [1024]; for(int i=0;(i=reader.read(buff))>0;) {writer.write(buff,0,i); }writer.close(); ; } } ในที่สุด { JdbcUtils.free(resultset, st, conn); } }}/*ฟังก์ชันที่นำไปใช้: ใช้ฐานข้อมูลเพื่อเก็บข้อมูลรูปภาพ และอ่านและนำไปไว้ในโปรเจ็กต์ปัจจุบันเพื่อการวิเคราะห์: ไม่ใช่เรื่องยากนัก สิ่งสำคัญคือต้องเชี่ยวชาญการสตรีมไบต์ มีการดำเนินการไม่มากในฐานข้อมูล แต่มีการอ่านและเขียนสตรีมไฟล์จำนวนมาก โปรดใส่ใจกับการเปลี่ยนวันที่ไดเร็กทอรีของรูปภาพ: 20131003 Dayangzi*/public class PictureBlob { public static void main(String[] args) พ่น SQLException, IOException { read(); } static void create() พ่น SQLException, IOException { Connection conn=null; ResultSet resultet=null; ลอง { //2. สร้างการเชื่อมต่อ conn=JdbcUtils.getConnection(); // Singleton design mode conn=JdbcUtilsSingle.getInstance().getConnection(); แทรกลงในค่า blob_test(big_bit)(?)"; prest=conn.prepareStatement(sql); ไฟล์ file=new ไฟล์ ("C://Documents and Settings//Administrator//My Documents//My Pictures//cxg.jpg"); InputStream in=new BufferedInputStream(new FileInputStream(file)); (int)file.length()); //4. ดำเนินการคำสั่ง int i=prest.executeUpdate(); System.out.println("i="+i); } ในที่สุด { JdbcUtils.free(resultset, prest, conn); } } static void read() ส่ง SQLException, IOException { Connection conn=null; ResultSet resultet=null; ลอง { //2. สร้างการเชื่อมต่อ conn=JdbcUtils.getConnection(); //โหมดการออกแบบกรณีเดียว conn=JdbcUtilsSingle.getInstance().getConnection(); //3. สร้างคำสั่ง st=conn.createStatement(); //4. ดำเนินการคำสั่ง resultset=st.executeQuery("select big_bit from blob_test" ); //5. ประมวลผลผลลัพธ์ในขณะที่(resultset.next()) { Blob blob=resultset.getBlob(1); InputStream in=blob.getBinaryStream(); //reader=resultset.getCharacterStream(1); ไฟล์ไฟล์=ไฟล์ใหม่("1.jpeg"); OutputStream out=new BufferedOutputStream(ไฟล์ใหม่) = ไบต์ใหม่ [1024]; for(int i=0;(i=in.read(buff))>0;) { out.write(buff,0,i); } out.close(); } } ในที่สุด { JdbcUtils.free(resultset, st, conn);
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับทุกคนในการเขียนโปรแกรม Java