• BLOB的读写操作


    //BLOB写入操作
    package
    zxt.xsfw.action.ceshi; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import zxt.wai.action.ProtectedAction; import zxt.wai.sys.Constant; import zxt.wai.sys.RequestHelper; import zxt.xsfw.init.WebInitLoad; import java.io.FileInputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import oracle.sql.BLOB; import java.sql.Statement; public class BlobceshiAction extends ProtectedAction{ public boolean postProcess(HttpServletRequest request, HttpServletResponse response) { return false; } public boolean process(HttpServletRequest request, HttpServletResponse response) { String name = RequestHelper.getStrParam(request, "NAME");//请求中读取参数 String img = RequestHelper.getStrParam(request, "IMG");//请求中读取参数 Connection conn=null; Statement stm=null; ResultSet rs=null; BLOB blob = null; FileInputStream fin=null; OutputStream out=null; try{ conn = WebInitLoad.getSysDBTookit().createConnection(); stm = conn.createStatement(); conn.setAutoCommit(false); String sql = "insert into TEST values('1','"+name+"',EMPTY_BLOB())"; stm.executeUpdate(sql); rs = stm.executeQuery("SELECT img FROM TEST WHERE id='1' FOR UPDATE "); fin = new FileInputStream(img); byte[] blobBuf = new byte[(int)fin.available()]; fin.read(blobBuf); fin.close(); if(rs.next()) { System.out.println(blobBuf.length);//以byte为单位 blob = (oracle.sql.BLOB)rs.getBlob(1); out = blob.getBinaryOutputStream(); out.write(blobBuf);//写入到BLOB中去 out.close(); conn.commit(); } }catch(Exception e){ e.printStackTrace(); }finally{ try { rs.close(); stm.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } setReturnValue("<script>alert("ok!BLOB保存成功!");history.back();</script>"); setReturnType(Constant.TARGET_TYPE_CONTENT); return false; } }


     //BLOB写入操作

    package zxt.xsfw.view.ceshi;

    
    

    import org.enhydra.xml.xmlc.html.HTMLObject;

    
    

    import zxt.wai.sys.XmlcViewFactory;
    import zxt.wai.view.ProtectedXView;
    import zxt.xsfw.init.WebInitLoad;

    
    

    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import oracle.sql.BLOB;

    
    


    public class ReadBlobceshiXView {

    
    

    public boolean render() {

    Connection conn=null;
    Statement stm=null;
    ResultSet rs=null;
    try {
    conn = getCon();
    stm = conn.createStatement();
    rs = stm.executeQuery("select img from TEST where id='1'");
    if(rs.next()){
    BLOB blob = (BLOB)rs.getBlob(1);
    InputStream is = blob.getBinaryStream();
    FileOutputStream os = new FileOutputStream("c:\1.jpg");
    int b;
    byte[] buffer = new byte[1024];
    while( (b=is.read(buffer)) != -1){
    os.write(buffer,0,b);//把BLOB信息写到文件流中
    }
    is.close();
    os.close();
    }
    } catch (Exception e) {
    e.printStackTrace();
    }finally{
    try {
    rs.close();
    stm.close();
    conn.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    return false;
    }

    public static void main(String[] orgs){
    new ReadBlobceshiXView().render();
    }

    public static Connection getCon() {
    Connection con = null;
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    String url = "jdbc:oracle:thin:@localhost:1521:ora9i";
    String user = "";
    String password = "";
    con = DriverManager.getConnection(url, user, password);
    } catch (Exception e) {
    e.printStackTrace();
    }
    return con;
    }

    
    

    }

     
  • 相关阅读:
    又来项目了,星座运势widget
    ubuntu下编译android源代码
    Android UI,界面辅助设置工具,可随意拖动控件,比google官方提供的方便
    Android 1.5原生软件开发SDK公布
    REST转自WIKI
    Android SDK 1.5 包装索引
    android google market FreshFace上线了,大家都试用试用,反正免费的
    JSON
    ubuntu命令
    网站支付宝接口错误代码:TRADE_DATA_MATCH_ERROR怎么处理? uz
  • 原文地址:https://www.cnblogs.com/zfdai/p/3570994.html
Copyright © 2020-2023  润新知