<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA

    人生若只如初見,何事秋風(fēng)悲畫扇。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      50 隨筆 :: 25 文章 :: 157 評(píng)論 :: 0 Trackbacks

    在持久化過程中我們往往要用到存儲(chǔ)一些大數(shù)據(jù)的操作,比如說用戶的靚照,還有用戶的整個(gè)數(shù)據(jù)文件什么的啦!在oracle中提供了blog,clog等字段好象可以提供此功能呢(另外當(dāng)然也可以直接放到如硬盤等其它存儲(chǔ)設(shè)備上)。
    就我個(gè)的人一些實(shí)踐記下:

    1:存放photo,比如gif的二進(jìn)制數(shù)據(jù):

    //在一個(gè)字節(jié)數(shù)據(jù)中存放此gif文件的二進(jìn)制數(shù)據(jù)
    InputStream in = new InputStream("photo.gif");//locate你的photho啦!
    byte[] buffer_in = new byte[in.available()];
    in.read(buffer_in);
    in.close();
    //將buffer_in持久化到DB中去



    //再將其寫到內(nèi)存來
    byte[] buffer_out = getPhoto();//get the buufer_in from DB  ^_^
    String path = context.getRealPath("/");
    FileOutputStream fout 
    = new FileOutputStream(path+"photo.gif");//locate your out path for your photo  
    fout.write(buffer_out);
    fout.close();

    2:對(duì)如比較大的文件可以存在CLOG中:
    oracle.jdbc.OraclePreparedStatement pstmt = 
          (oracle.jdbc.OraclePreparedStatement)OCon.prepareCall(updatesql);
         
    pstmt.setCLOB(
    1,tempclob);//tempclob就是存信DB中clog的內(nèi)容,clog的得到可以由以下function。


    //得到存于oracle表中clob的function
    private CLOB getCLOB(String xmlData, Connection conn)
      
    throws SQLException
     
    {
      CLOB tempClob 
    = null;
      
    try
      
    {
       
    //tempClob = CLOB.getEmptyCLOB();
       tempClob = CLOB.createTemporary(conn,true,CLOB.DURATION_SESSION);
       
    // If the temporary CLOB has not yet been created, create one
      
    // tempClob = CLOB.createTemporary(conn, true, CLOB.DURATION_SESSION);
       
    // Open the temporary CLOB in readwrite mode, to enable writing
       tempClob.open(CLOB.MODE_READWRITE);
       
    // Get the output stream to write
       Writer tempClobWriter = tempClob.getCharacterOutputStream();
       
    // Write the data into the temporary CLOB
       tempClobWriter.write(xmlData);
       
    // Flush and close the stream
       tempClobWriter.flush();
       tempClobWriter.close();
       
    // Close the temporary CLOB
       tempClob.close();
      }

      
    catch(SQLException sqlexp)
      
    {
       tempClob.freeTemporary();
       sqlexp.printStackTrace();
      }

      
    catch(Exception exp)
      
    {
       tempClob.freeTemporary();
       exp.printStackTrace();
      }

      
    return tempClob;
     }



    /**
    *在此多說幾句呢,在運(yùn)行到
    *tempClob = CLOB.createTemporary(conn,true,CLOB.DURATION_SESSION);
    *時(shí)若是出現(xiàn):ClassCastException 不太受歡迎的信息,看一下你的DB連接是不是連接池什么的,
    *我以前的用的連接(會(huì)出現(xiàn)此異常)如下:
    *<Resource name="jdbc/ttt" auth="Container" type="javax.sql.DataSource" 
                   maxActive="100" maxIdle="30" maxWait="3000"
                   username="LMSOwner" password="password" driverClassName="oracle.jdbc.driver.OracleDriver"
                   url="jdbc:oracle:thin:@appserver:1521:ttt"/>

     

     try
          {
             if ( _Debug )
             {
                System.out.println("  ::--> Connecting to the DB");
             }

      Context initContext = new InitialContext();
      Context envContext = (Context) initContext.lookup("java:/comp/env");
      DataSource ds = (DataSource) envContext.lookup("jdbc/ttt");
      conn = ds.getConnection();
          }

     

    改成:
      


    try{
    //   Load the database details into the variables.
      String url="jdbc:oracle:thin:@appserver:1521:ttt";
      String user     = "LMSOwner";
      String password = "ttt";

    //   Create the properties object that holds all database details
      java.util.Properties props = new java.util.Properties();
      props.put("user", user );
      props.put("password", password);
      props.put("SetBigStringTryClob", "true");

    //   Load the Oracle JDBC driver class.
      DriverManager.registerDriver(new oracle.jdbc.OracleDriver());     

    //   Get the database connection 
      conn = DriverManager.getConnection( url, props );
      }


     

    就OK了(可能是連接池的一個(gè)缺陷吧,呵呵不是太懂)
    */

    將其從DB中寫入到內(nèi)存
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    //to connect DB
    import com.studyez.lms.util.LMSDatabaseHandler;
    import java.sql.*;

    import oracle.sql.*;

    import oracle.xdb.XMLType;

    /**
     * Servlet implementation class for Servlet: UserCourseData
     * 
     
    */

    public class UserCourseData extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet
    {
     
    /**
      * 
      
    */

     
    private static final long serialVersionUID = 1L;

     
    /*
      * (non-Java-doc)
      * 
      * @see javax.servlet.http.HttpServlet#HttpServlet()
      
    */

     
    public UserCourseData()
     
    {
      
    super();
     }


     
    /*
      * (non-Java-doc)
      * 
      * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request,
      *      HttpServletResponse response)
      
    */

     
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
      
    throws ServletException, IOException
     
    {
      
    // TODO Auto-generated method stub
      String tlearnerID = (String) request.getParameter("learnerID");
      
    int lID = Integer.parseInt(tlearnerID);

      String courseID 
    = (String) request.getParameter("courseID");
      
    int cID = Integer.parseInt(courseID);

      String sql 
    = "select * from usercoursedata  where userID = " + lID + " and courseID = " + cID;

      String tempDocStr 
    = null;
      
    try
      
    {
       Connection conn 
    = LMSDatabaseHandler.getTempConn();
       Statement stmt 
    = conn.createStatement();
       ResultSet rst 
    = stmt.executeQuery(sql);
       OPAQUE xml;

       
    if(rst.next())
       
    {
        
    // rst.first();
        oracle.jdbc.OracleResultSet temprst = (oracle.jdbc.OracleResultSet) rst;

        xml 
    = temprst.getOPAQUE("xmlDoc");
        XMLType xt 
    = XMLType.createXML(xml);
       
    // doc = xt.getDOM();
        tempDocStr = xt.getStringVal();

      
    //  System.out.println("Testing getDOM() ");

       }

       
    else
       
    {
        System.out.println(
    "shit he is go now ");
        tempDocStr 
    = "<root></root>";
       }

       
    // Write XML to response.
       response.setContentType("application/xml");
       response.getWriter().write(tempDocStr);

       
    if(rst != null)
        rst.close();
       
    if(conn != null)
        conn.close();
       
      
    // System.out.println(tempDocStr);
      }

      
    catch(SQLException e)
      
    {
       e.printStackTrace();
       tempDocStr 
    = "<root></root>";

       
    // Write XML to response.
       response.setContentType("application/xml");
       response.getWriter().write(tempDocStr);
      }


     }


     
    /*
      * (non-Java-doc)
      * 
      * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request,
      *      HttpServletResponse response)
      
    */

     
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
      
    throws ServletException, IOException
     
    {
      
    // TODO Auto-generated method stub
      doGet(request, response);
     }

    }


       .

     

    對(duì)于clob我也是在摸索中寫進(jìn)去的(運(yùn)行時(shí)通過),不足之處請(qǐng)指正。謝謝!
    posted on 2006-03-05 11:49 Jkallen 閱讀(1970) 評(píng)論(0)  編輯  收藏 所屬分類: JEE學(xué)習(xí)DB學(xué)習(xí)
    主站蜘蛛池模板: 中文字幕在线成人免费看| 亚洲欧洲自拍拍偷综合| 免费人成视频在线观看免费| 日本亚洲精品色婷婷在线影院| 亚洲视频小说图片| 亚洲综合久久久久久中文字幕| 久久久久亚洲AV无码永不| 国产jizzjizz免费看jizz| 无码AV片在线观看免费| 怡红院亚洲红怡院在线观看| 亚洲性无码AV中文字幕| 亚洲AV无码久久精品成人| 亚洲成AV人片天堂网无码| 亚洲国产精品嫩草影院在线观看| 国产精品亚洲一区二区三区在线| 久久精品国产亚洲网站| 午夜亚洲AV日韩AV无码大全| 亚洲春黄在线观看| 亚洲国产日韩视频观看| 男男gvh肉在线观看免费| 亚洲视频免费在线看| 亚洲国产精品久久久久秋霞影院| 免费人成网站在线高清| 亚洲欧洲精品成人久久奇米网| 在线观看人成网站深夜免费| 中文字幕一区二区三区免费视频| 三级黄色免费观看| 67pao强力打造国产免费| 久久久www成人免费毛片| 久久w5ww成w人免费| 青青青国产在线观看免费网站| 免费激情视频网站| 黄色片在线免费观看| 日韩电影免费在线| 少妇高潮太爽了在线观看免费| 午夜成人免费视频| 四虎精品亚洲一区二区三区| 亚洲AV永久青草无码精品| 亚洲人妖女同在线播放| 免费人成动漫在线播放r18| 一级毛片在线免费观看|