Java/XML/XML Database

Материал из Java эксперт
Перейти к: навигация, поиск

XML Databases and Tools 1: read from clob

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class MainClass {
  public static void main(String[] args) {
    try {
      Class.forName("COM.cloudscape.core.JDBCDriver").newInstance();
      Connection conn = DriverManager.getConnection("jdbc:cloudscape:GAMETRADER");
      Statement s = conn.createStatement();
      ResultSet rs = s.executeQuery("SELECT * FROM tableName");
      while (rs.next()) {
        int id = rs.getInt("ID");
        InputStream bis = rs.getAsciiStream("MANUAL");
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        int ch = 0;
        while ((ch = bis.read()) != -1)
          bos.write(ch);
        System.out.println("GAMEID: " + id + "\n" + "MANUAL: " + new String(bos.toByteArray()));
      }
    } catch (Throwable e) {
      System.out.println("exception thrown");
      System.out.println(e);
    }
  }
}





XML Databases and Tools 2: read from blob

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
public class MainClass {
  public static void main(String[] args) throws Exception{
      Class.forName("COM.cloudscape.core.JDBCDriver").newInstance();
      Connection conn = DriverManager.getConnection("jdbc:cloudscape:GAMETRADER");
      conn.setAutoCommit(false);
      Statement s = conn.createStatement();
      s.executeUpdate("CREATE TABLE MANUALS(GAMEID INT, MANUAL LONG VARCHAR)");
      conn.rumit();
      File file = new File("manuals.xml");
      InputStream is = new FileInputStream(file);
      PreparedStatement ps = conn.prepareStatement("INSERT INTO MANUALS VALUES(?,?)");
      ps.setInt(1, 1285757);
      ps.setAsciiStream(2, is, (int) file.length());
      ps.execute();
      conn.rumit();
  }
}





XML Databases and Tools 3

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.w3c.dom.Document;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
public class MainClass {
  public static void main(String[] args) {
    try {
      Class.forName("COM.cloudscape.core.JDBCDriver").newInstance();
      Connection conn = DriverManager.getConnection("jdbc:cloudscape:GAMETRADER");
      Statement s = conn.createStatement();
      ResultSet rs = s.executeQuery("SELECT * FROM tableName");
      while (rs.next()) {
        int id = rs.getInt("GAMEID");
        Document manual = (Document) rs.getObject("MANUAL");
        XMLSerializer serialize = new XMLSerializer(System.out, null);
        serialize.serialize(manual);
      }
    } catch (Throwable e) {
      System.out.println("exception thrown");
      System.out.println(e);
    }
  }
}





XML Databases DOM

import java.sql.*;
import java.io.*;
import org.apache.xerces.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
public class XMLDBDOM {
  public static void main(String[] args) throws Exception{
      Class.forName("COM.cloudscape.core.JDBCDriver").newInstance();
      Connection conn = DriverManager.getConnection("jdbc:cloudscape:GAMETRADER");
      conn.setAutoCommit(false);
      Statement s = conn.createStatement();
      s.executeUpdate("CREATE TABLE XMLData(GAMEID INT, MANUAL SERIALIZE(org.w3c.dom.Document))");
      conn.rumit();
      File file = new File("XMLData.xml");
      InputStream is = new FileInputStream(file);
      PreparedStatement ps = conn.prepareStatement("INSERT INTO XMLData VALUES(?,?)");
      ps.setInt(1, 1285757);
      DOMParser parser = new DOMParser();
      parser.parse("XMLData.xml");
      Document manual = parser.getDocument();
      ps.setObject(2, manual);
      ps.execute();
      conn.rumit();
  }
}