hibernate操作clob大字段

博客介绍了Hibernate操作CLOB大字段的解决办法,作者放弃网上常见复杂方法,采用从session中取得connection来操作大字段,虽不推荐但可在无其他办法时一试,还给出了示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hibernate操作clob大字段,网上有很多解决办法。我看过很多。但最后都放弃了。太麻烦了。

最后我的解决办法是从session中取得connection,用connection操作大字段。本来大字段就不是一个通用的东东,所以这样写也是没办法的办法。

本方法个人不推荐使用。实在没办法时可以一试。

下面是示例代码:

/**
     * 写邮件正文clob字段
     *
     * @param sess
     * @param msg_id
     * @param text
     * @throws Exception
     */
    private void saveMessageText(Session sess, String msg_id, String text) throws Exception {
        //写入新闻内容,大字段
        try {
            //sess.connection().setAutoCommit(false);
            java.sql.Statement stmt = sess.connection().createStatement();
            String sql = "update t_plat_message set msg_text = EMPTY_CLOB() where msg_id ='" + msg_id + "'";
            stmt.executeUpdate(sql);
            sql = "select msg_text from t_plat_message where msg_id='" + msg_id + "' for update";
            ResultSet rs = stmt.executeQuery(sql);
            CLOB Clob = null;
            if (rs.next()) {
                Clob = (CLOB) rs.getClob(1);
                Writer writer = Clob.getCharacterOutputStream();
                writer.write(text);
                writer.flush();
                writer.close();
            }
            rs.close();
            stmt.close();
        } catch (Exception e) {
            throw e;
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值