В этой статье на примерах описывается метод программирования JDBC для хранения файлов и изображений. Поделитесь им со всеми для справки, подробности следующие:
/*Реализованная функция: использовать базу данных для хранения текстовых данных, считывать их и помещать в текущий проект для анализа: это не очень сложно, нужно освоить поток файлов. В базе данных не так много операций. , но есть больше операций чтения и записи файлового потока. Дата: 20131003 Автор: Ян Даянцзы*/public class Ckb_test { public static void main(String[] args) throws SQLException, IOException { // TODO Автоматически создаваемая заглушка метода read (); } статическая пустота create() throws SQLException, IOException { Connection conn=null; ReadyStatement prest=null; ResultSetResultset=null; getInstance().getConnection() //3. Создать оператор String sql="insert in; значения 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. i=prest.executeUpdate(); read.close(); System.out.println("i="+i); наконец { JdbcUtils.free(resultset, prest, conn } } static void read() throws); SQLException, IOException {Оператор подключения = null; ResultSet resultset = null; //2. Устанавливаем соединение conn=JdbcUtils.getConnection(); //Режим разработки для одного случая conn=JdbcUtilsSingle.getInstance().getConnection(); //3. Создаем оператор st=conn.createStatement(); 4. Выполнить оператор resultset=st.executeQuery("выбрать текст из ckb_test"); //5. Обработка результатов while(resultset.next()) { Clob clob=resultset.getClob(1); Reader read=clob.getCharacterStream(); //reader=resultset.getCharacterStream(1); Файл («JdbcUtils.java Writer Writer = новый BufferedWriter (новый FileWriter (файл)); char[1024]; for(int i=0;(i=reader.read(buff))>0;) {writer.write(buff,0,i } write.close(); ; } }finally { 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 resultset=null; try { //2. Устанавливаем соединение conn=JdbcUtils.getConnection() // Режим разработки Singleton conn=JdbcUtilsSingle.getInstance().getConnection(); //3. вставить в значения blob_test(big_bit)(?)"; prest=conn.prepareStatement(sql); File file=new File("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; Statement st=null; ResultSet resultset=null; try { //2. Устанавливаем соединение conn=JdbcUtils.getConnection(); //Режим разработки для одного случая conn=JdbcUtilsSingle.getInstance().getConnection() //3. Создать оператор st=conn.createStatement() //4. Выполнить оператор resultset=st.executeQuery("select big_bit from blob_test"; ); //5. Обрабатываем результаты while(resultset.next()) { Blob blob=resultset.getBlob(1); InputStream in=blob.getBinaryStream(); //reader=resultset.getCharacterStream(1); File file=new File("1.jpeg"); OutputStream out=new BufferedOutputStream(new FileOutputStream(file) buff); =новый байт[1024]; for(int i=0;(i=in.read(buff))>0;) { out.write(buff,0,i); } out.close(); in.close() } } наконец { JdbcUtils.free(resultset, st, conn);
Я надеюсь, что эта статья будет полезна всем, кто занимается программированием на Java.