package kasicheck;/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */import oracle.jdbc.driver.*;
import java.sql.*;
import java.io.*;public class database {    public database() {
    }    public static void main(String[] args){        String URL = "jdbc:oracle:thin:@cnc-iki:1521:BMS";
        String USERID = "gyomu";
        String PASSWORD = "gyomu";
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection conn = DriverManager.getConnection(URL, USERID, PASSWORD);
            Statement stmt = conn.createStatement();
            String sql = "insert into DBQ_TABLE values(" +
                       "'1'," +
                         "'1'," +
                         "'1'," +
                         "'1'," +
                         "'1'," +
                         "'1'," +
                         "'1'," +
                         "'1'," +
                         "'1'," +
                         "EMPTY_BLOB()"+
                       ")";
            System.out.println(sql);
            stmt.executeUpdate(sql);
            sql = "SELECT MSGDATA FROM DBQ_TABLE WHERE TRNID=? ";
            PreparedStatement prestmt = conn.prepareStatement(sql,
                    ResultSet.TYPE_SCROLL_SENSITIVE,
                    ResultSet.CONCUR_UPDATABLE);
            prestmt.setString(1,"1");
            ResultSet rs = prestmt.executeQuery();
            System.out.println("hahahahahaha");
            System.out.println("current row" + rs.getRow());
            while(rs.next()){
                oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("MSGDATA");
                BufferedOutputStream out = new BufferedOutputStream(blob.getBinaryOutputStream());
                String blobfile = "C:/Documents and Settings/cnc/My Documents/My Pictures/climing.jpg";
                BufferedInputStream in = new BufferedInputStream(new FileInputStream(blobfile));
                int c;
                while ((c=in.read())!=-1) {
                    out.write(c);
                }
                in.close();
                out.close();
                conn.commit();
            conn.commit();
        }
        }
        catch (Exception ex) {
            ex.printStackTrace();
            System.out.println("error");
        }        System.out.println("success");    }
}rs.next不能循环起来.
rs.getRow得到0

解决方案 »

  1.   

    package kasicheck;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2003</p>
     * <p>Company: </p>
     * @author unascribed
     * @version 1.0
     */import oracle.jdbc.driver.*;
    import java.sql.*;
    import java.io.*;public class database {    public database() {
        }    public static void main(String[] args){        String URL = "jdbc:oracle:thin:@cnc-iki:1521:BMS";
            String USERID = "gyomu";
            String PASSWORD = "gyomu";
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                Connection conn = DriverManager.getConnection(URL, USERID, PASSWORD);
                Statement stmt = conn.createStatement();
                String sql = "insert into DBQ_TABLE values(" +
                           "'1'," +
                             "'1'," +
                             "'1'," +
                             "'1'," +
                             "'1'," +
                             "'1'," +
                             "'1'," +
                             "'1'," +
                             "'1'," +
                             "EMPTY_BLOB()"+
                           ")";
                System.out.println(sql);
                stmt.executeUpdate(sql);
                sql = "SELECT MSGDATA FROM DBQ_TABLE WHERE TRNID=? for update nowait";
                PreparedStatement prestmt = conn.prepareStatement(sql,
                        ResultSet.TYPE_SCROLL_SENSITIVE,
                        ResultSet.CONCUR_UPDATABLE);
                prestmt.setString(1,"1");
                ResultSet rs = prestmt.executeQuery();
                System.out.println("hahahahahaha");
                System.out.println("current row" + rs.getRow());
                while(rs.next()){
                    oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("MSGDATA");
                    BufferedOutputStream out = new BufferedOutputStream(blob.getBinaryOutputStream());
                    String blobfile = "C:/Documents and Settings/cnc/My Documents/My Pictures/climing.jpg";
                    BufferedInputStream in = new BufferedInputStream(new FileInputStream(blobfile));
                    int c;
                    while ((c=in.read())!=-1) {
                        out.write(c);
                    }
                    in.close();
                    out.close();
                    conn.commit();
                conn.commit();
            }
            }
            catch (Exception ex) {
                ex.printStackTrace();
                System.out.println("error");
            }        System.out.println("success");    }
    }