The Code Example of Indexing


The following program is used to implement the button of Index web page of the previous interface.

 ~wenchen/public_html/cgi-bin/513/week10/Spider.java 
/********************************************************
 
   SQL> CREATE TYPE  url_title  AS OBJECT (
     2    url    VARCHAR(128),
     3    title  VARCHAR(128) );
 
   SQL> CREATE TYPE  urls_typ  AS TABLE OF  url_title;
 
   SQL> CREATE TABLE  www_index (
     2    keyword   VARCHAR(64)  PRIMARY KEY,
     3    urls      urls_typ
     4  )  NESTED TABLE  urls  STORE AS  urls_tbl;
 
********************************************************/
import  java.io.*;
import  java.lang.*;
import  java.sql.*;
 
public class  Spider {
  public static void  main( String args[ ] )
    throws SQLException {
    int  i = Integer.parseInt( args[0] );
    new  Reminder( i );
 
    DriverManager.registerDriver(
      new oracle.jdbc.driver.OracleDriver( ) );
    Connection conn = DriverManager.getConnection(
      "jdbc:oracle:thin:@172.20.4.9:1521:aero", "userid", "password");
    try {
      Runtime  run = Runtime.getRuntime( );
      String  query = "/usr/bin/lynx -dump " + args[2];
      Process  pp = run.exec( query );
      BufferedReader  in = new BufferedReader(
        new InputStreamReader( pp.getInputStream( ) ) );
      String  line;
test: while ( ( line = in.readLine( ) ) != null ) {
        if ( line.indexOf( args[1] ) != -1 ) {
          try {
            Statement  stmt1 = conn.createStatement( );
            query = "SELECT * FROM www_index WHERE keyword='" + args[1] + "'";
            ResultSet  rset = stmt1.executeQuery( query );
            if ( rset.next( ) ) {
              query  = "INSERT INTO TABLE( SELECT urls FROM www_index";
              query += " where keyword=? ) VALUES ( url_title('";
              query += args[2] + "', '" + args[3] + "' ) )";
              PreparedStatement  stmt2 = conn.prepareStatement( query );
              stmt2.setString( 1, args[1] );
              stmt2.execute( );
              stmt2.close( );
            }
            else {
              query  = "INSERT INTO www_index VALUES ('";
              query += args[1] + "', urls_typ(url_title('";
              query += args[2] + "', '" + args[3] + "')))";
              stmt1.executeUpdate( query );
              stmt1.close( );
            }
            rset.close ( );
            break test;
          }
          catch ( SQLException ex ) {
            System.out.println( ex );
          }
        }
      }
    }
    catch ( Exception e ) {
      System.out.println( e );
    }
    conn.close( );
  }
}