Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Помогите разобраться с примером! Пожалуйста.


Автор: vurdalak19 23.8.2013, 21:50
Реализовать на Java программу, которая читает курс валюты (рубль к доллару) и складывает в базу данных.
Курс получать на сайте Центробанка РФ, обращаясь к соответствующему вебсервису.
Вот сайт на котором это уже сделано.
Вот листинги:

 
Код

Листинг 1
import java.io.*;
import java.net.*;
import java.util.*;
import java.text.*;
import java.sql.*;
 
import ConnectManager;
 
class Terra implements HttpConstants {
 
  static void onRBC() throws IOException {
 
    URL homeRBC = null;
    DataInputStream dis = null;
    String full = new String();
 
    boolean cont2 = false;
    try {
        homeRBC = new URL("http://www.rbc.ru/out/801.csv");
        dis = new DataInputStream(homeRBC.openStream());
 
        String line = dis.readLine();
        while(line != null) {
            full += line + "\n";
            line = dis.readLine();
        }
        cont2 = true;
    } catch(IOException e) {
        System.out.println("Error for connection to RBC ...");
    }
    if(cont2==true) {
        String cbr = toUnicode(full);
        int ndx = cbr.indexOf("USD OA ?O,");
        full = cbr.substring(ndx);
        full = full.substring(0,31);
 
        String cbrDate = full.substring(10);
        cbrDate = cbrDate.substring(0,5);
        String cbrValue = full.substring(16);
        cbrValue = cbrValue.substring(0,7);
 
        System.out.println(cbrDate);
        System.out.println(cbrValue);
 
        Connection con = ConnectManager.getConnectionToRBC();
        try {
            PreparedStatement logSt1 = con.prepareStatement("UPDATE rbc SET cbrValue = ? WHERE Name = 'USD'");
            logSt1.setString(1, cbrValue);
            int res = logSt1.executeUpdate();
            logSt1.close();
            PreparedStatement logSt2 = con.prepareStatement("UPDATE rbc SET cbrDate = ? WHERE Name = 'USD'");
            logSt2.setString(1, cbrDate);
            res = logSt2.executeUpdate();
            logSt2.close();
            ConnectManager.closeConnection(con);
        } catch (SQLException ex) {
            System.out.println("Error SQL ...");
        }
    }
  }
 
  public static void main(String[] a) throws Exception {
    onRBC();
  }
}
  Листинг 2
import java.io.*;
import java.util.*;
import java.net.*;
import java.text.*;
import java.sql.*;
 
public class ConnectManager {
 
  public static Connection getConnectionToRBC() throws IOException {
       Connection con = null;
       Locale.setDefault(new Locale("ru","RU"));
       try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con = DriverManager.getConnection("jdbc:odbc:rbc", "", "");
       } catch(Exception ex) {
       }
       return con;
  }
 
  public static void closeConnection(Connection con) throws IOException {
       try {
    con.close();
       } catch (SQLException e) {
       }
  }
 
  public static String toUnicode(String str) throws IOException {
       try {
    String charset="windows-1251";
    byte[] buf = new byte[str.length()];
    str.getBytes(0, str.length(), buf, 0);
    return new String(buf);
       } catch(Exception e) {
    return "Error toUnicode";
       }
  }
}


Я здесь вижу, что тут берутся данные с сервера. Но не понятно где они складываются, например на компьютере? Вот в этом весь вопрос где здесь складываются данные в базу, а не берутся ? Или это какой то не доделанный вариант?

Автор: Mirkes 23.8.2013, 22:48
[quote=vurdalak19, 23.8.2013,  21:50, post2579625]        
Код

        System.out.println(cbrDate);
        System.out.println(cbrValue);[/quote]

Вот здесь печатают

А вот здесь кладут в свою базу
Цитата(vurdalak19 @  23.8.2013,  21:50 Найти цитируемый пост)
 
Код

    if(cont2==true) {
        String cbr = toUnicode(full);
        int ndx = cbr.indexOf("USD OA ?O,");
        full = cbr.substring(ndx);
        full = full.substring(0,31);
 
        String cbrDate = full.substring(10);
        cbrDate = cbrDate.substring(0,5);
        String cbrValue = full.substring(16);
        cbrValue = cbrValue.substring(0,7);
 
        System.out.println(cbrDate);
        System.out.println(cbrValue);
 
        Connection con = ConnectManager.getConnectionToRBC();
        try {
            PreparedStatement logSt1 = con.prepareStatement("UPDATE rbc SET cbrValue = ? WHERE Name = 'USD'");
            logSt1.setString(1, cbrValue);
            int res = logSt1.executeUpdate();
            logSt1.close();
            PreparedStatement logSt2 = con.prepareStatement("UPDATE rbc SET cbrDate = ? WHERE Name = 'USD'");
            logSt2.setString(1, cbrDate);
            res = logSt2.executeUpdate();
            logSt2.close();
            ConnectManager.closeConnection(con);
        } catch (SQLException ex) {
            System.out.println("Error SQL ...");
        }
    }



Автор: Bananana 23.9.2013, 09:30
Здравствуйте! Помогите пожалуйста решить: Дано натуральное число n >=1. Напишите рекурсивную функцию, определяющую число a, такое, что 2^(а-1) <= n < 2^n.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)