【java/oracle】以JDBC方式向clob字段输入大文本

【建表】

create table test03(
    id number(3),
    content clob,
    primary key(id)
)

【程序】

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class ClobWriter {
    public static void main(String[] args) throws Exception{
        // 四大参数
        final String DRIVER = "oracle.jdbc.driver.OracleDriver";
        final String URL = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";// sqlplus里敲show parameter service;
        final String USER = "luna";
        final String PSWD = "1234";

        Class.forName(DRIVER);
        Connection conn = DriverManager.getConnection(URL, USER, PSWD);

        String sql="insert into test03(id,content) values('1',?)";
        PreparedStatement ps=conn.prepareStatement(sql);
        Clob clob= conn.createClob();

        String text=readFromFile("c:\\hy\\twgx.txt");
        clob.setString(1,text);
        ps.setClob(1,clob);
        ps.executeUpdate();

        ps.close();
        conn.close();
    }

    static String readFromFile(String path) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path), "UTF-8"));

        String line = null;
        StringBuilder sb=new StringBuilder();
        while( ( line = br.readLine() ) != null ) {
            sb.append(line+"\n");
        }
        br.close();

        return sb.toString();
    }
}

【查询效果】

SQL> select * from test03;

        ID
----------
CONTENT
--------------------------------------------------------------------------------
         1
豫章故郡,洪都新府。星分翼轸,地接衡庐。襟三江而带五湖,控蛮荆而引瓯越。物华天宝

【读出】

https://www.cnblogs.com/heyang78/p/15937919.html

END

posted @ 2022-02-25 21:33  逆火狂飙  阅读(142)  评论(0编辑  收藏  举报
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东