Advertisement
Guest User

Untitled

a guest
May 25th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.16 KB | None | 0 0
  1. Main.java:
  2.  
  3.  
  4.  
  5. import com.google.gson.Gson;
  6. import java.io.File;
  7. import java.sql.Connection;
  8. import java.sql.DriverManager;
  9. import java.sql.ResultSet;
  10. import java.sql.Statement;
  11. import spark.Spark;
  12.  
  13. public class Main {
  14.  
  15. public static void main(String[] args) throws Throwable {
  16.  
  17.  
  18. Connection connection = DriverManager.getConnection("jdbc:sqlite:testi.db");
  19. Statement statement = connection.createStatement();
  20. ResultSet resultSet = statement.executeQuery("SELECT 1");
  21.  
  22. if (resultSet.next()) {
  23. System.out.println("Hei tietokantamaailma!");
  24. } else {
  25. System.out.println("Yhteyden muodostaminen epäonnistui.");
  26. }
  27.  
  28. // ^ TÄHÄN ASTI TOIMII
  29.  
  30. Database db = new Database("jdbc:sqlite:todot.db");
  31.  
  32. TodoDao tehtavat = new TodoDao(db);
  33.  
  34. System.out.println(tehtavat.findAll());
  35.  
  36.  
  37. }
  38.  
  39. }
  40.  
  41.  
  42. TodoDao:
  43.  
  44.  
  45. import java.util.*;
  46. import java.sql.*;
  47. import java.sql.SQLException;
  48. import java.util.List;
  49.  
  50. public class TodoDao implements Dao<Todo, Integer> {
  51.  
  52. private Todo todo;
  53. private Integer id;
  54. private Database database;
  55.  
  56. public TodoDao(Todo tehtava, Integer nro) {
  57. this.todo = tehtava;
  58. this.id = nro;
  59. }
  60.  
  61. public TodoDao(Database database) {
  62. this.database = database;
  63. }
  64.  
  65. @Override
  66. public Todo findOne(Integer key) throws SQLException {
  67. Connection conn = database.getConnection();
  68. PreparedStatement stmt = conn.prepareStatement("SELECT * FROM Todo WHERE id = ?");
  69. stmt.setInt(1, key);
  70.  
  71. ResultSet rs = stmt.executeQuery();
  72. boolean hasOne = rs.next();
  73. if (!hasOne) {
  74. return null;
  75. }
  76.  
  77. Todo t = new Todo(rs.getInt("id"), rs.getString("tehtava"),
  78. rs.getBoolean("tehty"));
  79.  
  80. stmt.close();
  81. rs.close();
  82.  
  83. conn.close();
  84.  
  85. return t;
  86. }
  87.  
  88. @Override
  89. public List<Todo> findAll() throws SQLException {
  90. ArrayList<Todo> lista = new ArrayList<>();
  91.  
  92. // Otetaan yhteys tietokantaan
  93. Connection conn = database.getConnection();
  94. PreparedStatement statement = conn.prepareStatement("SELECT * FROM Todo");
  95.  
  96. ResultSet resultSet = statement.executeQuery();
  97.  
  98. // käydään tuloksena saadussa oliossa olevat rivit läpi -- next-komento hakee
  99. // aina seuraavan rivin, ja palauttaa true jos rivi löytyi
  100.  
  101. while(resultSet.next()) {
  102. // haetaan nykyiseltä riviltä tiedot
  103. Integer id = resultSet.getInt("id");
  104. String tehtava = resultSet.getString("tehtava");
  105. Boolean tehty = resultSet.getBoolean("tehty");
  106.  
  107. // Luodaan tiedoista uusi Asiakas-olio ja lisätään se listaan.
  108. lista.add(new Todo(id, tehtava, tehty));
  109. }
  110.  
  111. // Suljetaan yhteys tietokantaan
  112. resultSet.close();
  113. statement.close();
  114. conn.close();
  115.  
  116. return lista;
  117. }
  118.  
  119. @Override
  120. public Todo saveOrUpdate(Todo object) throws SQLException {
  121. // jos asiakkaalla ei ole pääavainta, oletetaan, että asiakasta
  122. // ei ole vielä tallennettu tietokantaan ja tallennetaan asiakas
  123. if (object.id == null) {
  124. return save(object);
  125. } else {
  126. // muulloin päivitetään asiakas
  127. return update(object);
  128. }
  129. }
  130.  
  131. @Override
  132. public void delete(Integer key) throws SQLException {
  133. throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  134. }
  135.  
  136. private Todo save(Todo object) throws SQLException {
  137. Connection conn = database.getConnection();
  138. PreparedStatement stmt = conn.prepareStatement("INSERT INTO Todo"
  139. + " (id, tehtava, tehty)"
  140. + " VALUES (?, ?, ?)");
  141. stmt.setInt(1, object.getId());
  142. stmt.setString(2, object.getTehtava());
  143. stmt.setBoolean(3, object.getTehty());
  144.  
  145. stmt.executeUpdate();
  146. stmt.close();
  147.  
  148. stmt = conn.prepareStatement("SELECT * FROM Todo"
  149. + " WHERE id = ? AND tehtava = ?");
  150. stmt.setInt(1, object.getId());
  151. stmt.setString(2, object.getTehtava());
  152.  
  153. ResultSet rs = stmt.executeQuery();
  154. rs.next(); // vain 1 tulos
  155.  
  156. Todo t = new Todo(rs.getInt("id"), rs.getString("tehtava"),
  157. rs.getBoolean("tehty"));
  158.  
  159. stmt.close();
  160. rs.close();
  161.  
  162. conn.close();
  163.  
  164. return t;
  165. }
  166.  
  167. private Todo update(Todo object) throws SQLException {
  168.  
  169. Connection conn = database.getConnection();
  170. PreparedStatement stmt = conn.prepareStatement("UPDATE Todo SET"
  171. + "tehtava = ?, tehty = ? WHERE id = ?");
  172. stmt.setString(1, object.getTehtava());
  173. stmt.setBoolean(2, object.getTehty());
  174. stmt.setInt(3, object.getId());
  175.  
  176. stmt.executeUpdate();
  177.  
  178. stmt.close();
  179. conn.close();
  180.  
  181. return object;
  182.  
  183. }
  184.  
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement