Реализовать на 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"; } } }
|
Я здесь вижу, что тут берутся данные с сервера. Но не понятно где они складываются, например на компьютере? Вот в этом весь вопрос где здесь складываются данные в базу, а не берутся ? Или это какой то не доделанный вариант? |