查看: 2594|回复: 0

[Java语言] java 聚合数据 天气 API接口调用

发表于 2018-1-18 08:00:02
  1. public class GetDataIntoTable {
  2.     public static void main(String[] args) throws Exception {
  3.         Connection conn = DatabaseConnection.getConnection();
  4.         String cityName = "广州";
  5.         if (getByCityName(cityName)) {
  6.             PreparedStatement pstmt = conn.prepareStatement("SELECT city,message FROM tianqi WHERE city=?");
  7.             pstmt.setString(1, cityName);
  8.             ResultSet rs = pstmt.executeQuery();
  9.             if (rs.next()) {
  10.                 System.out.print(rs.getString(2));
  11.             }
  12.         } else {
  13.             PreparedStatement pstmt = conn.prepareStatement("INSERT INTO tianqi(city,message,modify) VALUES(?,?,?)");
  14.             String msg = getData(cityName);
  15.             pstmt.setString(1, cityName);
  16.             pstmt.setString(2, msg);
  17.             pstmt.setTimestamp(3, new Timestamp(new java.util.Date().getTime()));
  18.             pstmt.executeUpdate();
  19.         }
  20.     }
  21.     public static String getData(String cityName) throws Exception {
  22.         String city = URLEncoder.encode(cityName, "UTF-8");
  23.         URLConnection conn = new URL(
  24.                 "http://v.juhe.cn/weather/index?format=2&cityname=" + city + "&key=e643d606ab8b9b5636dcc02368")
  25.                         .openConnection();
  26.         conn.connect();
  27.         InputStream input = conn.getInputStream();
  28.         BufferedReader reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
  29.         return reader.readLine();
  30.     }
  31.     public static boolean getByCityName(String city) throws Exception {
  32.         Connection conn = DatabaseConnection.getConnection();
  33.         PreparedStatement pstmt = conn.prepareStatement("SELECT COUNT(*) FROM tianqi WHERE city=?");
  34.         pstmt.setString(1, city);
  35.         ResultSet rs = pstmt.executeQuery();
  36.         if (rs.next()) {
  37.             if (rs.getInt(1) > 0) {
  38.                 return true;
  39.             }
  40.         }
  41.         return false;
  42.     }
  43. }
复制代码


回复

使用道具 举报