Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Deutsch) » MobiLink - Erste Orientierung » Praktische Einführungen in MobiLink » Praktische Einführung: Synchronisation mit Microsoft Excel

 

Lektion 4: Eine Java-Klasse mit direkter Zeilenbehandlung in MobiLink erstellen

In dieser Lektion verwenden Sie die direkte Zeilenbehandlung für die Verarbeitung von Zeilen in der OrderComments-Tabelle Ihrer Clientdatenbank. Sie fügen die folgende Methode für die direkte Zeilenbehandlung hinzu:

  • GetUpload   Diese Methode verwenden Sie für das handle_UploadData-Ereignis. GetUpload schreibt hochgeladene Kommentare in die Excel-Tabelle order_central.xlsx.

  • SetDownload   Diese Methode verwenden Sie für das handle_DownloadData-Ereignis. SetDownload fragt die in der Excel-Tabelle order_central.xlsx gespeicherten Daten ab und sendet sie an entfernte Clients.

Mit dem nachfolgenden Verfahren können Sie eine Java-Klasse inklusive Ihrer Methoden für die Prozessverarbeitung erstellen. Eine vollständige Auflistung finden Sie unter Vollständige MobiLinkOrders-Auflistung (Java).

 ♦  So erstellen Sie eine Java-Klasse für die direkte reine Download-Zeilenbehandlung
  1. Schreiben Sie eine neue Klasse mit dem Namen MobiLinkOrders.

    Schreiben Sie den folgenden Programmcode:

    import ianywhere.ml.script.*;
    import java.io.*;
    import java.sql.*;
    
    public class MobiLinkOrders {
    
  2. Deklarieren Sie eine DBConnectionContext-Instanzvariable auf Klassenebene.

    Fügen Sie den folgenden Code hinzu:

        // Class level DBConnectionContext
        DBConnectionContext _cc;

    Der MobiLink-Server übergibt eine DBConnectionContext-Instanz an Ihren Klassenkonstruktor. DBConnectionContext umfasst Informationen zur aktuellen Verbindung mit der konsolidierten MobiLink-Datenbank.

  3. Erstellen Sie Ihren Klassenkonstruktor.

    Ihr Klassenkonstruktor legt Ihre DBConnectionContext-Instanz auf Klassenebene fest.

    Fügen Sie den folgenden Code hinzu:

        public MobiLinkOrders( DBConnectionContext cc ) {
            throws IOException, FileNotFoundException {
            // Declare a class-level DBConnectionContext
            _cc = cc;
        }
  4. Schreiben Sie die GetUpload-Methode.

    Die GetUpload-Methode ruft eine UploadedTableData-Klasseninstanz ab, die die OrderComments-Tabelle darstellt. Die OrderComments-Tabelle enthält spezielle Kommentare von entfernten Vertriebsmitarbeitern. Sie erstellen diese Tabelle in Lektion 6: Konsolidierte MobiLink-Clientdatenbank einrichten. Die UploadedTableData getInserts-Methode gibt eine Ergebnismenge für neue Bestellkommentare zurück.

    Fügen Sie den folgenden Code hinzu:



        //  Method for the handle_UploadData synchronization event
        public void GetUpload( UploadData ut ) throws SQLException, IOException { 
    
            //  Get an UploadedTableData for OrderComments
            UploadedTableData orderCommentsTbl = ut.getUploadedTableByName("OrderComments");
     
            // Get inserts uploaded by the MobiLink client
            ResultSet insertResultSet = orderCommentsTbl.getInserts();
    
            try {
                // Connect to the excel worksheet through ODBC
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                Connection con = DriverManager.getConnection( "jdbc:odbc:excel_datasource" ); 
      
                while( insertResultSet.next() ) { 
                    // Get order comments
                    int _commentID = insertResultSet.getInt("comment_id");
                    int _orderID = insertResultSet.getInt("order_id");
                    String _specialComments = insertResultSet.getString("order_comment");
          
                    // Execute an insert statement to add the order comment to the worksheet
                    PreparedStatement st = con.prepareStatement("INSERT INTO [order_sheet$]"
                        + "(order_id, comment_id, order_comment) VALUES (?,?,?)" );
                    st.setString( 1, Integer.toString(_orderID) );
                    st.setString( 2, Integer.toString(_commentID) );
                    st.setString( 3, _specialComments );
                    st.executeUpdate();      
                    st.close();
                }
                con.close();
            } catch(Exception ex) {
                System.err.print("Exception: ");
                System.err.println(ex.getMessage());
            }
            insertResultSet.close();
        }
  5. Schreiben Sie die SetDownload-Methode:

    1. Rufen Sie eine Klasseninstanz ab, die die OrderComments-Tabelle darstellt.

      Verwenden Sie die DBConnectionContext getDownloadData-Methode, um eine DownloadData-Instanz zu erhalten. Verwenden Sie die DownloadData getDownloadTableByName-Methode zur Rückgabe einer DownloadTableData-Instanz für die OrderComments-Tabelle.

      Fügen Sie den folgenden Code hinzu:

          public void SetDownload() throws SQLException, IOException {
              DownloadData download_d = _cc.getDownloadData();
              DownloadTableData download_td = download_d.getDownloadTableByName( "OrderComments" );
      Hinweis

      Die Erstellung dieser Tabelle in der entfernten Datenbank wird in Lektion 6: Konsolidierte MobiLink-Clientdatenbank einrichten beschrieben.

    2. Rufen Sie eine vorbereitete Anweisung auf, die Ihnen das Hinzufügen von Einfüge- oder Aktualisierungsvorgängen zum Download ermöglicht.

      Verwenden Sie die DownloadTableData getUpsertPreparedStatement-Methode, um eine java.sql.PreparedStatement-Instanz zurückzugeben.

      Fügen Sie den folgenden Code hinzu:

              // Prepared statement to compile upserts (inserts or updates).
              PreparedStatement download_upserts = download_td.getUpsertPreparedStatement();
    3. Legen Sie die Downloaddaten für jede Zeile fest.

      Der folgende Code durchläuft die Tabelle order_central.xlsx und fügt dem MobiLink-Download Daten hinzu.

      Fügen Sie den folgenden Code hinzu:



              try {
                  // Connect to the excel worksheet through ODBC
                  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                  Connection con = DriverManager.getConnection( "jdbc:odbc:excel_datasource" );
      
                  // Retrieve all the rows in the worksheet
                  Statement st = con.createStatement();
                  ResultSet Excel_rs = st.executeQuery( "SELECT * FROM [order_sheet$]" );
      
                  while (Excel_rs.next()) {
                      // Retrieve the row data
                      int Excel_comment_id = Excel_rs.getInt(1);
                      int Excel_order_id = Excel_rs.getInt(2);
                      String Excel_comment = Excel_rs.getString(3);
      
                      // Add the Excel data to the MobiLink download.
                      download_upserts.setInt( 1, Excel_comment_id );
                      download_upserts.setInt( 2, Excel_order_id );
                      download_upserts.setString( 3, Excel_comment ); 
                      download_upserts.executeUpdate();
                  }
                  // close the excel result set, statement, and connection.
                  Excel_rs.close();
                  st.close();
                  con.close();
              } catch(Exception ex) {
                  System.err.print("Exception: ");
                  System.err.println(ex.getMessage());
              }
    4. Schließen Sie die vorbereitete Anweisung, die für das Hinzufügen oder Aktualisieren im Download verwendet wurde, beenden Sie die Methode und die Klasse.

      Fügen Sie den folgenden Code hinzu:

              download_upserts.close();
          }
      }
  6. Speichern Sie den Java-Code unter dem Namen MobiLinkOrders.java in Ihrem Arbeitsverzeichnis c:\MLobjexcel.

    Siehe Vollständige MobiLinkOrders-Auflistung (Java) zur Überprüfung des Codes in MobiLinkOrders.java.

  7. Kompilieren Sie Ihre Klassendatei.

    1. Navigieren Sie zum Verzeichnis mit Ihren Java-Quelldateien.

    2. Kompilieren Sie MobiLinkOrders mit Referenzen zur MobiLink-Server-API-Bibliothek für Java.

      Sie müssen mlscript.jar unter Installationsverzeichnis\Java referenzieren.

      Führen Sie den folgenden Befehl aus, wobei Sie C:\Programme\SQL Anywhere 12\ durch Ihr SQL Anywhere 12 Verzeichnis ersetzen:

      javac -classpath "C:\Programme\SQL Anywhere 12\java\mlscript.jar" MobiLinkOrders.java
 Weitere Hinweise

Vollständige MobiLinkOrders-Auflistung (Java)