首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 核心技术 >> 网络编程 >> 正文

Java操作DB2 XML数据实践


         * 创建表
         *
         * @throws SQLException
         */
        public static void testCreateXMLTable() throws SQLException {
            String ct_sql = "CREATE TABLE Customer (Cid BIGINT NOT NULL PRIMARY KEY, Info XML)";
            Connection conn = DBUtils.makeConnection();
            Statement stmt = conn.createStatement();
            stmt.executeUpdate(ct_sql);
            stmt.close();
            conn.close();
        }

        /**
         * 插入数据
         *
         * @throws SQLException
         * @throws IOException
         */
        public static void testInsertXMLTable() throws SQLException, IOException {
            String xml = "<customerinfo xmlns=\"http://posample.org\" Cid=\"1000\">\n" +
                    "<name>Robert Shoemaker</name>\n" +
                    "<addr country=\"Canada\">\n" +
                    "<street>1596 Baseline</street>\n" +
                    "<city>zhengzhou</city>\n" +
                    "<prov-state>Ontario</prov-state>\n" +
                    "<pcode-zip>N8X 7F8</pcode-zip>\n" +
                    "</addr>\n" +
                    "<phone type=\"work\">905-555-2937</phone>\n" +
                    "</customerinfo>";
            String ins_sql = "INSERT INTO CUSTOMER (CID, INFO) VALUES (1000, ?)";
            Connection conn = DBUtils.makeConnection();
            conn.setAutoCommit(false);
            PreparedStatement pstmt = conn.prepareStatement(ins_sql);
            byte[] b = xml.getBytes();
            InputStream ins = new ByteArrayInputStream(b);
            pstmt.setBinaryStream(1, ins, b.length);
            pstmt.executeUpdate();
            conn.commit();
            ins.close();
            pstmt.close();
            conn.close();
        }

        /**
         * XQuery查询数据
         *
         * @throws SQLException
         */
        public static void testQueryXMLTable() throws SQLException {
            String query_sql = "SELECT XMLQUERY (\n" +
                    "'declare default element namespace \"http://posample.org\";\n" +
                    "for $d in $doc/customerinfo\n" +
                    "return <out>{$d/name}</out>'\n" +
                    "passing INFO as \"doc\")\n" +
                    "FROM Customer as c\n" +
                    "WHERE XMLEXISTS ('declare default element namespace \"http://posample.org\";\n" +
                    "$i/customerinfo/addr[city=\"zhengzhou\"]' passing c.INFO as \"i\")";
            Connection conn = DBUtils.makeConnection();
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(query_sql);
            StringBuffer xmls = new StringBuffer();
            while (rs.next()) {
                xmls.append(rs.getString(1)).append("\n");
            }
            System.out.println(xmls.toString());
            stmt.close();
            conn.close();
        }

        /**
         * XQuery更新数据
         *
         * @throws SQLException
         * @throws IOException
         */
        public static void testUpdateXMLTable() throws SQLException, IOException {
            String xml = "<customerinfo xmlns=\"http://posample.org\" Cid=\"1002\">\n" +
                    "<name>Jim Noodle</name>\n" +
                    "<addr country=\"Canada\">\n" +
                    "<street>1150 Maple Drive</street>\n" +
                    "<city>Newtown</city>\n" +
                    "<prov-state>Ontario</prov-state>\n" +
                    "<pcode-zip>Z9Z 2P2</pcode-zip>\n" +
                    "</addr>\n" +
                    "<phone type=\"work\">905-555-7258</phone>\n" +
                    "</customerinfo>";
            String up_sql = "UPDATE customer SET info =?" +
                    "WHERE XMLEXISTS (\n" +
                    "'declare default element namespace \"http://posample.org\";\n" +
                    "$doc/customerinfo[@Cid = 1000]'\n" +
                    "passing INFO as \"doc\")";

            Connection conn = DBUtils.makeConnection();
            conn.setAutoCommit(false);
            PreparedStatement pstmt = conn.prepareStatement(up_sql);
            byte[] b = xml.getBytes();
            InputStream ins = new ByteArrayInputStream(b);
            pstmt.setBinaryStream(1, ins, b.length);
            pstmt.executeUpdate();
            conn.commit();
            ins.close();
            pstmt.close();
            conn.close();
        }

上一页  [1] [2] [3] 下一页

【责编:Ken】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航