Advertisement
Guest User

gówno_kod

a guest
Jun 4th, 2017
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.07 KB | None | 0 0
  1.  
  2. import java.sql.*;
  3. import java.util.*;
  4. import java.util.Date;
  5.  
  6. public class Main {
  7. // JDBC driver oraz database URL
  8. static final String DB_URL = "jdbc:mysql://ricky.heliohost.org/cackoa_people";
  9.  
  10. // parametry bazy danych
  11. static final String USER = "cackoa_user";
  12. static final String PASS = "cackoa_password";
  13.  
  14. public static void main(String[] args) {
  15. try(
  16. Connection conn = DriverManager.getConnection(DB_URL,USER,PASS);
  17. Statement stmt = conn.createStatement()
  18. )
  19. {
  20. /*
  21. która kobieta jest najmłodsza, najstarsza?
  22. który mężczyzna ma najdłuższe nazwisko?
  23. Ile jest mężczyzn a ile kobiet (patrz po pesel)?
  24. Jaka jest mediana wieku tych osób?
  25. Z którego miasta pochodzi najwięcej osób?
  26. */
  27.  
  28. //która kobieta jest najmłodsza, najstarsza?
  29. String kobietaSql = "SELECT pe.name_surname, par.pesel FROM person as pe JOIN parameters as par ON pe.id = par.person_id " +
  30. "WHERE SUBSTRING(par.pesel,10,1) IN ('0','2','4','6','8')";
  31. ResultSet kobietaResult = stmt.executeQuery(kobietaSql);
  32. Date earliestDate = new Date(2300);
  33. Date oldestDate = new Date(1000);
  34. String oldestWoman = null;
  35. String youngestWoman = null;
  36. int kobietsCounter = 0;
  37. ArrayList<Date> median = new ArrayList<>();
  38. while(kobietaResult.next()) {
  39. kobietsCounter++;
  40. String surname = kobietaResult.getString("name_surname");
  41. String pesel = kobietaResult.getString("pesel");
  42.  
  43. Date birthdate = calculateBirthdate(pesel);
  44. median.add(birthdate);
  45. if(birthdate.before(earliestDate)){
  46. earliestDate = birthdate;
  47. oldestWoman = surname;
  48. }
  49. if(birthdate.after(oldestDate)){
  50. oldestDate = birthdate;
  51. youngestWoman = surname;
  52. }
  53. }
  54. System.out.println("Najstarsza jest " + oldestWoman + " data urodzenia: " + earliestDate);
  55. System.out.println("Najmłodsza jest " + youngestWoman + " data urodzenia: " + oldestDate);
  56.  
  57. //który mężczyzna ma najdłuższe nazwisko?
  58. String facetSql = "SELECT pe.name_surname, par.pesel FROM person as pe JOIN parameters as par ON pe.id = par.person_id " +
  59. "WHERE SUBSTRING(par.pesel,10,1) IN ('1','3','5','7','9')";
  60. ResultSet facetResult = stmt.executeQuery(facetSql);
  61. String longestSurname = "";
  62. String fullLongestSurname = null;
  63. int facetsCounter = 0;
  64. while (facetResult.next()){
  65. facetsCounter++;
  66. String surname = facetResult.getString("name_surname");
  67. String birthdate = facetResult.getString("pesel");
  68. median.add(calculateBirthdate(birthdate));
  69.  
  70. String[] splited = surname.split("\\s+");
  71. if(splited[1].length() > longestSurname.length()){
  72. longestSurname = splited[1];
  73. fullLongestSurname = surname;
  74. }
  75. }
  76. System.out.println("Najdłuższe ma: " + fullLongestSurname);
  77.  
  78. //Ile jest mężczyzn a ile kobiet (patrz po pesel)?
  79. //Przepraszam za lenistwo
  80. System.out.println("Kobiety: " + kobietsCounter + " Faceci: " + facetsCounter);
  81.  
  82. //Jaka jest mediana wieku tych osób?
  83.  
  84. long totalSeconds = 0L;
  85. for (Date date : median) {
  86. totalSeconds += date.getTime() / 1000L;
  87. }
  88. long averageSeconds = totalSeconds / median.size();
  89. Date averageDate = new Date(averageSeconds * 1000L);
  90. System.out.println("Mediana wieku: " + averageDate);
  91.  
  92. //Z którego miasta pochodzi najwięcej osób?
  93. String miastaSql = "SELECT city, COUNT(city) as quantity FROM parameters GROUP BY city " +
  94. "ORDER BY quantity DESC " +
  95. "LIMIT 1";
  96. ResultSet miastaResult = stmt.executeQuery(miastaSql);
  97.  
  98. while(miastaResult.next()) {
  99. String city = miastaResult.getString("city");
  100. int quantity = miastaResult.getInt("quantity");
  101. System.out.println("Najwięcej pochodzi z Miasto: " + city + " ilosć wystąpień: " + quantity);
  102. }
  103.  
  104. stmt.close();
  105. conn.close();
  106. }catch(SQLException se){
  107. se.printStackTrace();
  108. }catch(Exception e){
  109. e.printStackTrace();
  110. }
  111. System.out.println("Koniec!");
  112.  
  113. }//end main
  114.  
  115. static Date calculateBirthdate(String pesel){
  116. Date mDate = new Date(Integer.parseInt(pesel.substring(0,2)), Integer.parseInt(pesel.substring(2,4)), Integer.parseInt(pesel.substring(4,6)));
  117. return mDate;
  118. }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement