Published on InterSystems Developer Community (https://community.intersystems.com)

主页 > FAQ 常见问题系列--Java 如何向IRIS数据库中写入Stream数据

文章
Lele Yang · 四月 21, 2022 阅读大约需 2 分钟

FAQ 常见问题系列--Java 如何向IRIS数据库中写入Stream数据

以下示例代码可实现在Java中通过JDBC向IRIS数据库中写入Stream数据,插入的该Stream大小约为4M,对应在IRIS中字段类型为%Stream.GlobalCharacter。以下代码在IRIS2021上测试成功,供大家参考,

Java代码,

public static void test96()
    {
        int rt;
        String sql="Insert into My_Msg.Test1(MsgControlID,S1) values(?,?)";
        try {

            IRISDataSource ds = new IRISDataSource();
            
            //172.19.85.72/:1972/YLL   IRIS Health 2021
            ds.setURL("jdbc:IRIS://<ip>:1972/YLL");
            ds.setUser("<username>");
            ds.setPassword("<password>");
            Connection connection = ds.getConnection();
            PreparedStatement pstmt = connection.prepareStatement(sql);
            System.out.println("1");
            StringBuffer txt = new StringBuffer();
               for (int i = 0; i < 4000000; i++) {
                txt.append("a");
            }
            pstmt.setInt(1, 1);
            pstmt.setObject (2, txt.toString());    
            rt = pstmt.executeUpdate();
            System.out.println("2:"+rt);
            
            pstmt.close();
            connection.close();
        }catch (Exception ex) {
               System.out.println("JDBC caught exception: " 
                         + ex.getClass().getName() + ": " + ex.getMessage());
        }    
    }

插入的表在IRIS中对应的类定义,

Class My.Msg.Test1 extends %Persistent
{
    Property MsgControlID As %String;
    Property S1 As %Stream.GlobalCharacter;
}
#Java

源 URL:https://cn.community.intersystems.com/post/faq-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E7%B3%BB%E5%88%97-java-%E5%A6%82%E4%BD%95%E5%90%91iris%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%AD%E5%86%99%E5%85%A5stream%E6%95%B0%E6%8D%AE