###前提・実現したいこと
一定時間ごとにデータベースに外部サイトの特定タグ内の文字列をアップロードするプログラムを作ろうと思っています。
特定タグ内の文字列を抜くこと(GetPrice.class)
一定時間ごとに特定動作をさせること(TimerSample.class)
データベースにデータを上げる(MySQLConnector.class)
3つのjavaは個別に動かして見た時は動いていました。
###発生している問題・エラーメッセージ
組み合わせる段階にて外部サイトの文字列データ(Elements型)の戻り値?の受け渡しが上手くいっていないのでしょうか?
コンパイル時にエラーを吐きます。
どのようにエラーを直せばいいのか教えて下さい!お願いします。
またjava初心者でしてどのような環境情報等を晒せばいいのかよくわかっておりません。足りない場合は聞いて頂ければ調べます。
よろしくお願いします。
jdk 1.8.0_111
Tomcat 8.0
Connector.j 5.1
C:\Apache Software Foundation\Tomcat 8.0\webapps\jsoup\WEB-INF\classes>javac TimerSample.java GetPrice.java MySQLConnector.java MySQLConnector.java:4: エラー: シンボルを見つけられません public void updb(Elements test) { ^ シンボル: クラス Elements 場所: クラス MySQLConnector TimerSample.java:29: エラー: シンボルを見つけられません Elements test = getprice.cuck(); ^ シンボル: クラス Elements 場所: クラス TimerSample.TimeStar エラー2個
###該当のソースコード
MySQLConnector
java
1import java.sql.*; 2 3public class MySQLConnector { 4 public void updb(Elements test) { 5 Connection con = null; 6 7 try { 8 // JDBCドライバのロード - JDBC4.0(JDK1.6)以降は不要 9 Class.forName("com.mysql.jdbc.Driver").newInstance(); 10 // MySQLに接続 11 con = DriverManager.getConnection("jdbc:mysql://localhost/jsp10", "jsp10", "jsp10"); 12 Statement stm = con.createStatement(); 13 String sql = "UPDATE opendata SET placename = '500', temperature ='" + test + "' WHERE id = 2"; 14 int result = stm.executeUpdate(sql); 15 System.out.println("更新件数は" + result + "です。"); 16 } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { 17 System.out.println("JDBCドライバのロードに失敗しました。"); 18 } catch (SQLException e) { 19 System.out.println("MySQLに接続できませんでした。"); 20 } finally { 21 if (con != null) { 22 try { 23 con.close(); 24 } catch (SQLException e) { 25 System.out.println("MySQLのクローズに失敗しました。"); 26 } 27 } 28 } 29 } 30}
GetPrice
java
1import org.jsoup.Jsoup; 2import org.jsoup.nodes.Document; 3import org.jsoup.nodes.Element; 4import org.jsoup.select.Elements; 5 6import java.io.IOException; 7 8 9public class GetPrice { 10 public Elements cook() throws IOException { 11 12 String url = "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=9501.T"; 13 14 Document doc = Jsoup.connect(url).get(); 15 Elements stoksPrice=doc.select("td[class=stoksPrice]"); 16 System.out.println(stoksPrice); 17 return stoksPrice; 18 19 } 20 21}
TimerSample
java
1import java.io.IOException; 2import java.util.Timer; 3import java.sql.*; 4 5import java.util.TimerTask; 6import javax.swing.*; 7 8public class TimerSample extends JFrame{ 9 public int i = 0; 10 11 public static void main(String[] args) { 12 new TimerSample(); 13 } 14 15 public TimerSample(){ 16 TimeStar star = new TimeStar(); 17 Timer timer = new Timer(); 18 System.out.println( "5"); 19 System.out.println( "1"); 20 21 timer.schedule(star, 1000,1000); 22 23 } 24 25 class TimeStar extends TimerTask { 26 public void run() { 27 GetPrice getprice = new GetPrice(); 28 MySQLConnector mysqlconnector = new MySQLConnector(); 29 Elements test = getprice.cook(); 30 31 try { 32 mysqlconnector.updb(test); 33 34 } catch (IOException e) { 35 36 e.printStackTrace(); 37 } 38 i++; 39 if(i%10==0){ 40 System.out.println(); 41 } 42 if(i==2) System.exit(0); 43 } 44 } 45}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/04 04:24