`
edwin492
  • 浏览: 114752 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Blob例

阅读更多

 

 public boolean addMMSCardTemplate(String title, String content, int owner,
        String addTime) throws Exception{
        Connection con = null;
        long id = 1L;
        PreparedStatement  pst = null;
        boolean ret = false;
        String date = CommonFun.getDateTimeString();
        ResultSet rs = null;
        try
        {
          con = this.dbPool.getConnection();
          con.setAutoCommit(false);
          pst = con.prepareStatement("SELECT T_MMSCADETEMPLATE_SEQ.NEXTVAL from dual");
          rs = pst.executeQuery();
          //获取数据库中创建的序列
          if(rs.next()){
             id = rs.getLong("nextval");
          }
          String sql = "insert into t_mmscardtemplate (id, title,content,owner,addtime) values (?,?,?,?,?)";
          pst = con.prepareStatement (sql);
          pst.setLong(1, id);
          pst.setString(2, title);
          pst.setBlob(3, BLOB.empty_lob());
          pst.setInt(4, owner);
          pst.setString(5, date);
          pst.executeUpdate();
          pst = con.prepareStatement("select content from t_mmscardtemplate where id = ? for update");
          pst.setLong(1, id);
          rs = pst.executeQuery();
          BLOB blob = null;
          byte[] c = content.getBytes();
          while(rs.next()){
             blob = (BLOB) rs.getBlob("content");
             final java.io.BufferedOutputStream out = new java.io.BufferedOutputStream(
                 blob.getBinaryOutputStream());
             out.write(c, 0, c.length);
             out.close();
          }
          pst = con.prepareStatement("update t_mmscardtemplate set content = ? where id = ?");
          pst.setBlob(1, blob);
          pst.setLong(2, id);
          pst.executeUpdate();
          con.commit();
          ret = true;
        }
        catch (SQLException e)
        {
          con.rollback();
          throw e;
        }
        finally
        {
            con.setAutoCommit(true);
            DBTools.close(con, pst, rs);
        }
        return ret;
    }

 以流的方式写入Blob或Clob,前者二进制方式,后者以字符方式,先插空blob后update。其中涉及到sql的长度问题等问题。

   public MMSCardTemplatePO getMMSCardTemplateById(int id) throws Exception
    {
        PreparedStatement pst = null;
        Connection con = null;
        ResultSet rs = null;
        MMSCardTemplatePO mcPO = null;
        String sql = "select * from t_mmscardtemplate where id = ?";
        try{
            con = this.dbPool.getConnection();
            pst = con.prepareStatement(sql);
            pst.setInt(1, id);
            rs = pst.executeQuery();
            mcPO = new MMSCardTemplatePO();
            while(rs.next()){
                mcPO.setId(rs.getInt("id"));
                BLOB blob = (BLOB) rs.getBlob("content");
                mcPO.setContent(new String(blob.getBytes(1, (int)blob.length())));
                mcPO.setAddTime(rs.getString("addtime"));
                mcPO.setOwner(rs.getString("owner"));
                mcPO.setTitle(rs.getString("title"));
            }
        } catch (SQLException e)
        {
          
            throw e;
          }
          finally
          {
              DBTools.close(con, pst, rs);
          }
        return mcPO;
    }
 
分享到:
评论

相关推荐

    java file upload BLOB

    - 此方法用于从数据库中读取特定记录中的 BLOB 数据(本例中为图片),并将其返回给客户端。 - 首先,通过 `ConnBean.getConn()` 获取数据库连接。 - 接着,执行 SQL 查询语句,该语句根据传入的 `documentno` ...

    JDBC+Hibernate将Blob数据写入Oracle

    随后,通过读取本地文件(本例中是"oraclejdbc.jar")的数据,将其写入到BLOB中。这里值得注意的是,写入数据前后的事务控制,使用`conn.setAutoCommit(false)`关闭自动提交,确保所有操作作为一个完整的事务处理,...

    如何将DB2数据库中的大对象(BLOB,CLOB)数据类型复制到Oracle数据库中

    本例中,我们讨论如何将DB2数据库中的BLOB数据类型复制到Oracle数据库。 1. **BLOB与CLOB数据类型**: BLOB(Binary Large Object)存储二进制大对象,如图像、音频或视频文件。CLOB(Character Large Object)...

    [java]将Byte存入blob.rar

    以SQL Server为例: ```java Connection conn = ... // 连接数据库 SQLServerBlob blob = new SQLServerBlob(imageBytes); ``` 3. 准备SQL语句:创建一个PreparedStatement,设置Blob参数。例如,插入一个包含图片...

    blob,将byte二进制转成pdf

    Blob在计算机科学中通常代表Binary Large Object,用于存储大块非结构化的数据,如图像、音频、视频或者在本例中提到的PDF文档的二进制内容。在Java编程环境中,Blob对象是JDBC API的一部分,用于存储和检索大型二...

    C++插入SQLite数据库的BLOB字段

    在本例中,我们假设已经有一个名为`images`的表,其中包含一个名为`image_data`的BLOB字段。使用`sqlite3_prepare_v2()`函数编译SQL语句,如下所示: ```cpp const char *sql = "INSERT INTO images (image_data) ...

    Blob.js和Export2Excel.js

    Blob对象是用于存储二进制数据的,比如图片、音频文件或在本例中,Excel文件的数据。Blob.js提供了便利的方法来构建、合并和分割Blob,这对于处理来自不同源的数据尤其有用。例如,你可以将多个数据片段合并成一个大...

    java将图片写入数据库,并读出来(blob clob)

    在Java编程中,有时我们需要将图像数据存储到数据库中,然后能够从数据库中读取出来。这个过程通常涉及到Blob和Clob数据类型,它们是Java中的两种...在本例中,我们主要讨论了Blob类型,因为它是存储图像数据的关键。

    图片存入Oracle中,用clob和blob两种方式

    虽然主要用于存储文本,但在本例中,由于图片可以被转换为字符串形式(例如Base64编码),所以可以用来存储图片。将图片转换为Base64字符串后,可以将其存储为`CLOB`,然后在读取时再解码回图片格式。 2. **BLOB...

    Hibernate对BLOB CLOB操作

    以`Users.hbm.xml`为例,假设我们有一个`Users`实体类,其中有一个`profileImage`字段作为BLOB类型,一个`bio`字段作为CLOB类型,映射可能会这样写: ```xml <!-- 其他字段 --> ...

    ADO读写blob字段

    这里以SQL Server为例,展示如何创建一个名为`userinfo`的表,该表包含以下字段:`id`、`username`、`old`以及`photo`,其中`photo`字段用于存储二进制数据。 ```sql CREATE TABLE [dbo].[userphoto]( [id] [int] ...

    spring mvc+hibernate 图片存储至blob

    在本例中,我们需要创建一个实体类来表示存储图片信息的数据模型,该类中有一个BLOB类型的字段用于存储图片数据。 ```java @Entity public class ImageEntity { @Id @GeneratedValue(strategy = GenerationType....

    模拟分批导出BLOB大字段.txt

    这里以模拟将10条记录分成两批导出为例,具体命令如下: 1. **导出第1批(ID 1-5)** ```bash expdp "/as sysdba" dumpfile=IMAGE_LOB1.dmp logfile=IMAGE_LOB_exp1.log directory=DATAPATH tables=testuser....

    基于.NET数据库BLOB数据处理技术在MIS开发中的应用.pdf

    本文以SQL Server数据库和***开发环境为例,探讨了.NET数据库BLOB数据处理技术的应用,并提出了有效的解决方案。 1. 关键技术和概念解析 文章首先介绍了BLOB数据的概念,BLOB是存储在数据库中的一种大容量二进制...

    java,Blob字段操作,将图片或者文件保存到数据库中.zip

    这里以MySQL为例,导入相关驱动,然后建立连接: ```java Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_db", "username", "password...

    嵌入式系统/ARM技术中的Blob在S3C44B0上的移植

    本文将以一款优秀的Bootloader Blob为例,详细讲解它的运行原理以及在S3C44B0通用处理器上的移植过程,为在嵌入式设备上的后续软件开发打下基础 。1 Blob简介 Blob是Boot Loader Object的缩写,是一款功能强大的...

    基于Blob和嵌入SQL的数据库外壳程序设计与实现.pdf

    文中以Sybase数据库为例,描述了如何通过利用其内在机制来实现自动安装和更新功能,展示了具体实现步骤和方法。 9. 文档结构:文档分为摘要、引言、系统结构、算法实现等部分。摘要部分简要介绍了研究的背景、目的...

    openCV_blob_detection

    本篇文章将深入探讨OpenCV 2.4.11版本中Blob检测的实现,并以“video_blob”为例,讲解如何处理一系列图像并输出最大亮点的坐标。 首先,我们需要理解OpenCV的Blob检测原理。Blob检测通常包括图像预处理、区域生长...

    mysql中blob数据处理方式

    在本例中,查询从`t_rk_baseinfo_blob`表中选取前10行,并获取ROW_ID和photo列。通过`PreparedStatement`执行SQL,获取`ResultSet`。 对于`ResultSet`中的每一行,我们获取ROW_ID和BLOB数据。BLOB对象可以通过调用`...

    ADO Stream 对象访问和修改 SQL Server BLOB 数据

    本例展示如何使用ADO Stream对象将SQL Server表中的Image数据导出到硬盘文件。具体步骤如下: 1. **创建VB项目**:首先创建一个新的标准EXE Visual Basic项目。 2. **添加ADO引用**:在项目的“引用”设置中,添加...

Global site tag (gtag.js) - Google Analytics