Advertisement
guest19986060

maleandmebaas_1

Mar 27th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.49 KB | None | 0 0
  1. import java.sql.SQLException;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.sql.*;
  5.  
  6. public class MaleAndmebaasSql {
  7.  
  8. Connection conn;
  9.  
  10. public static void main(String[] args) throws Exception {
  11. // seda meetodit automaattest ei puutu, seega siin võid teha ükskõik milliseid muudatusi
  12.  
  13. Class.forName("org.h2.Driver");
  14. MaleAndmebaasSql db = new MaleAndmebaasSql(
  15. "jdbc:h2:tcp://localhost/C:\\Users\\katri\\Documents\\2018\\java\\javakodu5\\male\\male");
  16.  
  17. System.out.println(db.turniiriOsalejad("Kolme klubi kohtumine"));
  18. System.out.println(db.isikuPunktisummaTurniiril("Henno", "Hiis", "Kolme klubi kohtumine"));
  19. }
  20.  
  21. public MaleAndmebaasSql(String andmebaasiUrl) throws SQLException {
  22. Connection conn = DriverManager.getConnection(
  23. "jdbc:h2:tcp://localhost/C:\\Users\\katri\\Documents\\2018\\java\\javakodu5\\male\\male");
  24. }
  25.  
  26. public List<String> turniiriOsalejad(String turniiriNimi) throws SQLException {
  27.  
  28. // Meetod peab tagastama listi näidatud turniiril osalejate nimedega
  29. // (eesnimi ja perekonnanimi tühikuga kokku ühendatuna ning kasvavalt järjestatuna).
  30. // Kui sellise nimega turniiri andmebaasis pole, siis tuleb tagastada tühi list.
  31. // Kasuta siin konstruktoris salvestatud Connection objekti
  32. // ja loo sobiva päringuga PreparedStatement.
  33. List<String> eesperenimed = new ArrayList<>();
  34. try {
  35. PreparedStatement stmt1 = conn.prepareStatement("select distinct eesnimi || ' ' || perenimi from partiid, turniirid \n " +
  36. "join isikud on turniirid.id = partiid.turniir AND (isikud.id=partiid.must OR isikud.id=partiid.valge) where turniirid.nimetus= ? order by eesnimi || ' ' || perenimi ASC");
  37. stmt1.setString(1,turniiriNimi);
  38. ResultSet rs = stmt1.executeQuery();
  39. while (rs.next()) {
  40. String täisnimi = (rs.getString(1));
  41. eesperenimed.add(täisnimi);
  42. }
  43. rs.close();
  44. stmt1.close();
  45. return eesperenimed;
  46. }
  47. catch (SQLException e) {
  48. return eesperenimed;
  49. }
  50. }
  51.  
  52. public double isikuPunktisummaTurniiril(String eesnimi, String perenimi,
  53. String turniiriNimi) throws SQLException {
  54. // Tagasta näidatud isiku punktisumma näidatud turniiril.
  55. try {PreparedStatement stmt2 = conn.prepareStatement("select SUM(partiid.Musta_tulemus)/2.0 AND turniirid, isikud \n" +
  56. "JOIN partiid ON (isikud.id=partiid.must OR isikud.id=partiid.valge WHERE isikud.eesnimi=? AND isikud.perenimi=? AND turniirid.nimetus=?");
  57. stmt2.setString(1,eesnimi);
  58. stmt2.setString(2,perenimi);
  59. stmt2.setString(3,turniiriNimi);
  60. ResultSet rs = stmt2.executeQuery();
  61. //PreparedStatement stmt2 0 conn.prepareStatement();
  62. //stmt2.setDouble(1);
  63. double punktisumma = rs.getDouble(1);
  64. return punktisumma;
  65. }
  66. catch (SQLException e) {
  67. return 0;
  68. }
  69. // Punktisumma on tema partiide tulemuste summa jagatuna kahega.
  70. // Ära unusta, et isik võis mängida nii valgete kui mustadega!
  71. // Kui sellise nimega turniiril polnud sellise nimega osalejat,
  72. // (või kui sellise nimega turniiri ei leidu)
  73. // siis peab meetod tagastama 0.
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement