Dipl.-Inf. (FH) T. Mättig

03.05.2005

Another Java example

Abgelegt unter: — Thiemo Mättig @ 13:26

This one uses command line arguments, it creates a file using java.io and it connects to a database using java.sql.

//We want to use a file (input/output) and a SQL database.
import java.io.*;
import java.sql.*;

public class Test
{
  //Try to call this program from the command line, e.g.:
  //java Test 1.7 2.3 3.8
  //Or use Eclipse and select "Run...", you can type
  //arguments there.
  public static void main(String[] args)
  {
    double sum = 0;
    for (int i = 0; i < args.length; i++)
    {
      //System.out.println(args[i]);
      try
      {
        sum += Double.parseDouble(args[i]);
        //This does the same as above:
        //sum += Double.valueOf(args[i]).doubleValue();
      }
      catch (Exception e)
      {
        //Print message if an argument isn't a number.
        System.out.println("Not a number: " + args[i]);
      }
    }
    double avg = sum / args.length;
    System.out.println("No of args: " + args.length);
    System.out.println("Sum: " + sum + ", Avg: " + avg);

    File file = new File("sum.txt");
    try
    {
      //Create a file and store the average value on disk.
      FileOutputStream stream = new FileOutputStream(file);
      stream.write(String.valueOf(avg).getBytes());
    }
    catch (Exception e)
    {
      //This happens if the file is write protected
      //(you can try this) or any other error occurs.
      System.out.println("Oops!");
    }

    try
    {
      //Load the driver and connect to the database.
      //This example uses Access, but a "real"
      //database like MySQL is a lot better.
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      //For ODBC you have to create an "ODBC Data
      //Source" in the Windows Control Panel.
      Connection con = DriverManager.getConnection(
        "jdbc:odbc:NameOfTheODBCDataSource");

      //Create an empty statement.
      Statement stmt = con.createStatement();

      //Use the statement to insert the average value two times.
      //You have to replace the table and column names!
      stmt.execute("INSERT INTO tablename " +
        "(columnname) VALUES ('" + avg + "')");
      stmt.execute("INSERT INTO tablename " +
        "(columnname) VALUES ('" + avg + "')");

      //Use the same statement to select something.
      ResultSet res = stmt.executeQuery("SELECT * FROM tablename");
      //Walk through the result set.
      while (res.next())
      {
        System.out.println(res.getString("columnname"));
      }
    }
    catch (Exception e)
    {
      //This happens when the database or table does not exist
      //or any other error according to SQL occurs.
      e.printStackTrace();
    }
  }
}

Kommentare

Noch keine Beiträge.

Einen Kommentar abgeben

Sorry, das Kommentarformular ist derzeit abgeschaltet.

Powered by WordPress